Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 列出并显示S3 bucket文件夹中的所有照片_Amazon Web Services_Amazon S3_Aws Lambda_Aws Api Gateway_Photo - Fatal编程技术网

Amazon web services 列出并显示S3 bucket文件夹中的所有照片

Amazon web services 列出并显示S3 bucket文件夹中的所有照片,amazon-web-services,amazon-s3,aws-lambda,aws-api-gateway,photo,Amazon Web Services,Amazon S3,Aws Lambda,Aws Api Gateway,Photo,在我的应用程序中,用户可以将图像上传到S3存储桶中的文件夹中。当前与从S3上传和检索图像相关的请求通过API网关处理,用户通过Cognito进行身份验证 有没有一种方法可以让我列出bucket文件夹中的所有对象,并显示所有图像 我问的问题与相同,只是我只希望经过身份验证的用户能够访问它 有没有办法通过Lambda函数检索它们 谢谢你的帮助 更新 我曾尝试实现S3的listObjectsV2函数,它不会随每个对象返回URL。有没有办法做到这一点 职能部门的答复: { “IsTruncated”:

在我的应用程序中,用户可以将图像上传到S3存储桶中的文件夹中。当前与从S3上传和检索图像相关的请求通过API网关处理,用户通过Cognito进行身份验证

有没有一种方法可以让我列出bucket文件夹中的所有对象,并显示所有图像

我问的问题与相同,只是我只希望经过身份验证的用户能够访问它

有没有办法通过Lambda函数检索它们

谢谢你的帮助

更新

我曾尝试实现S3的
listObjectsV2
函数,它不会随每个对象返回URL。有没有办法做到这一点

职能部门的答复:

{
“IsTruncated”:false,
“内容”:[
{
“Key”:“username/image/Screenshot 2021-02-22 at 13.24.55.png”,
“LastModified”:“2021-03-07T19:43:05.000Z”,
“ETag”,
“大小”:22436,
“StorageClass”:“标准”
}
],
“名称”:“用户图像”,
“前缀”:“用户名/”,
“MaxKeys”:1000,
“通用前缀”:[],
“密钥计数”:1

}
提供私人内容的推荐方法是:

  • 不要使用桶策略
  • 将所有对象保持为私有
  • 用户对您的应用程序进行身份验证
  • 当用户请求访问私有对象时,或者您希望在页面上包含私有对象(例如在
    标记中),应用程序应检查是否允许用户访问该对象
  • 如果允许他们访问该对象,应用程序将生成一个,该应用程序将提供对私有对象的有时间限制的访问
  • 当用户的浏览器将预先签名的URL发送到S3时,AmazonS3将检查URL是否正确以及时间段是否已过期。如果可以,它将返回私有对象

通过这种方式,您的应用程序管理与访问相关的所有权限,但内容本身由AmazonS3提供。这允许复杂的访问逻辑,例如用户与其他用户共享照片。

如果您的用户能够安全地只上传到他们的个人文件夹,则您必须已经解决了身份验证和授权问题,否?是的,这是很可能的,取决于语言:等。关于这一点有数千个问题。@jarmod是的,但我希望能够在后端调用一个函数,如
listObjects
,该函数可以返回查看图像的链接。@luk2302感谢您的回答,在我的例子中,列表键不足以显示每张照片的预览,因为每张照片都受Cognito Auth保护。。。或者我在这里是瞎的,但这就是我对它的理解,通常S3对象不是公共的,您的后端会获得对象列表,然后为每个对象生成临时的、预先签名的URL,以便前端可以检索它们。嗨,John,感谢您的回复。我正在寻找一种方法,在一次函数调用中检索S3存储桶中同一文件夹下的图像列表。因为对象是私有的,所以它也需要返回图像的预签名URL。是否有允许此操作的功能?谢谢。@AlexGoodison是的,有一种方法可以通过一个函数来实现。您只需编写一个函数,并让它执行多项必要的操作(列出对象、根据需要进行筛选、创建预签名URL)。@AlexGoodison预签名URL可以在您自己的代码中计算,而无需进行API调用。它基本上是一个使用密钥的散列函数。