在亚马逊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;


上市一个桶的内容,你会使用API​​ GetBucket命令。我发现使用SDKs可以更容易地通过API进行访问。

由于亚马逊按字典顺序列出了一切(当前支持的唯一方式),因此在桶对象上搜索或执行并行操作可能很痛苦。使用随机ID的问题是,它将全部写入相同的块存储,并且不能并行搜索以进行优化。

这是一篇关于性能改进的有趣文章。我用它来做我的工作,并看到高负荷的显着差异。 http://aws.typepad.com/aws/2012/03/amazon-s3-performance-tips-tricks-seattle-hiring-event.html