S3存储桶策略列出公共存储桶中的多个对象

时间:2015-07-08 14:39:12

标签: amazon-web-services amazon-s3 bucket

我在S3中设置了一个公共存储桶,并将多个对象复制到其中。在这种情况下,他们是jpeg照片。

我想与匿名公共用户(朋友)共享所有这些对象,但我想向他们发送一个静态网站地址用于存储桶以及对象显示为列表(或至少显示所有图像)当他们点击那个地址链接时。

这是否可以使用S3以这种方式向没有S3帐号的公众用户显示对象?

我知道的替代方法是向它们发送一个唯一的链接到桶中的每个对象(这将永远!)。

任何建议都会有所帮助。

3 个答案:

答案 0 :(得分:0)

S3没有内置任何内容来执行像nginx这样的“目录索引”,而Apache也可以做。不过,可以使用AWS Lambda来完成。

I built a rudimentary image index with lambda,您可能会对其进行调整以解决您的问题。

答案 1 :(得分:0)

是肯定的。 您可以在s3存储桶中托管静态网页:http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

只需生成一个静态html页面,其中包含指向所有照片的链接,将其上传到存储桶中,将存储桶设置为静态网页并提供链接。

或者,对于额外的懒惰:) https://github.com/rgrp/s3-bucket-listing

答案 2 :(得分:0)

感谢您的回答,他们帮助我找到了一个非常简单的解决方案。在另一个论坛上,我发现有人编写了一些脚本,并将其放在一个链接中,您只需将其直接上传到您的存储桶中,并将所有对象放入一个简单的列表......天才!

这是链接:

http://regexp.s3.amazonaws.com/list.html

因此,对于技术含量较低的人(像我一样),您可以将上面的链接上传到您的存储桶中。即使您没有将其下载到PC上,也只需将其复制并粘贴到上传文件路径中即可。

当我上传它时,该文件作为list.html

出现在S3存储桶中

确保文件可读,并且您已正确设置ACL。并确保您的存储桶具有允许任何人访问它的策略。

您的存储桶对象(内容)随后会显示在下方的网址链接中。

http://<your bucket name>.s3.amazonaws.com/list.html

如果上面写有<your bucket name>,请用您的存储桶名称替换该部分。

您应该能够点击该链接并查看存储桶中的对象列表。一旦你了解它,它实际上非常简单。

相关问题