2011-03-18 103 views
0

如果我有一個包含數十萬圖像的存儲桶,可以通過它的ID搜索我想要在我的網站上顯示的每個圖像嗎?還是有更有效的方法(包括可能有多個文件夾)?在亞馬遜S3存儲桶內搜索

我也在考慮給每個圖像一個獨特的哈希或類似的東西,以阻止重複名稱在桶中。這似乎是一個好主意嗎?

回答

0

您只需使用普通的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進行訪問。

0

由於亞馬遜按字典順序列出了一切(當前支持的唯一方式),因此在桶對象上搜索或執行並行操作可能很痛苦。使用隨機ID的問題是,它將全部寫入相同的塊存儲,並且不能並行搜索以進行優化。

這是一篇關於性能改進的有趣文章。我用它來做我的工作,並看到高負荷的顯着差異。 http://aws.typepad.com/aws/2012/03/amazon-s3-performance-tips-tricks-seattle-hiring-event.html