在亚马逊S3存储桶内搜索
问题描述:
如果我有一个包含数十万图像的存储桶,可以通过它的ID搜索我想要在我的网站上显示的每个图像吗?还是有更有效的方法(包括可能有多个文件夹)?在亚马逊S3存储桶内搜索
我也在考虑给每个图像一个独特的哈希或类似的东西,以阻止重复名称在桶中。这似乎是一个好主意吗?
答
您只需使用普通的URL链接到每个图片。对于公众文件的URL的格式为:
http://mybucket.s3.amazonaws.com/myimage.jpg
对于私人网址,你需要生成一个URL(这是很容易使用任何软件开发工具包)的格式为:
http://mybucket.s3.amazonaws.com/myimage.jpg?AWSAccessKeyId=44CF9SAMPLEF252F707&Expires=1177363698&Signature=vjSAMPLENmGa%2ByT272YEAiv4%3D
没有什么将每个文件存储为唯一的名称是错误的。如果您在文件上设置了正确的标题,则任何下载仍可以具有原始名称。例如Content-Disposition: attachment; filename=myimage.jpg;
答
由于亚马逊按字典顺序列出了一切(当前支持的唯一方式),因此在桶对象上搜索或执行并行操作可能很痛苦。使用随机ID的问题是,它将全部写入相同的块存储,并且不能并行搜索以进行优化。
这是一篇关于性能改进的有趣文章。我用它来做我的工作,并看到高负荷的显着差异。 http://aws.typepad.com/aws/2012/03/amazon-s3-performance-tips-tricks-seattle-hiring-event.html