2013-01-01 126 views
2

假設:我有數千張圖像存儲在亞馬遜S3存儲桶的不同文件夾中。我想讓他們可以以幻燈片形式訪問未登錄的用戶,但我不想處理數據庫和服務器性能不佳的情況(如果用戶數量太多,同時出現這種情況),所以我只想使用javascript 。僅用javascript顯示來自Amazon S3存儲桶的圖像

問題是我應該向客戶端提供文件列表,因爲我不能使用XMLHttpRequest來提取和分析當您嘗試瀏覽存儲桶時提供的xml文件,因爲(我期望)瀏覽頁面應該位於我的網絡服務器上。 我想我應該編寫一些服務器端代碼,在每次上傳/修改後創建一個更新的文件列表與用戶分享,但我不確定這是一個好主意。

有人可以建議我繼續下去嗎? 新年快樂!

+1

你是否控制文件和文件夾名稱?如果是這樣,你可以讓你的腳本探測有多少圖像(即檢查012/99.jpg是否存在等),以避免有一個文件列表。 –

+0

這是我的第一選擇(是的,我可以選擇我喜歡的文件名),並且我仍然非常喜歡它,但是我想首先顯示最後修改的文件,而且我無法加載所有文件數據,因爲他們太多了,而且會很慢。我雖然要選擇連續的數字作爲文件名,但它很難處理的情況下修改/擦除文件(最後修改應始終是幻燈片中的第一個) – andreaconsole

回答

1

可能的答案,告訴我你怎麼看待: Amazon提供ListBucket操作http://docs.amazonwebservices.com/AmazonS3/latest/API/SOAPListBucket.html

我可以選擇多少結果使用最大密鑰和標記(用於分頁)參數,以獲得在一次(例如:http://download.terracotta.org/?max-keys=5 )。 例如,我將獲得一個xml文件(就像我想要的那樣),我可以用js在「list.html」文件中進行本地解析。 然後,我可以在我的web服務器上的slideshow.html文件中包含的iframe中包含此list.html文件(應該僅打印圖像數組的定義)。

太髒?

+0

來實現。我沒有看到用SOAP API調用結果的方式。所以它似乎仍不能滿足你的需求。 – davidethell

+0

從我的測試中,似乎xml是按最後修改排序的,即使我沒有找到明確的指示。 – andreaconsole

+0

如果是這樣的話,我會說這是你最好的選擇,儘管我不喜歡SOAP。 – davidethell

0

Amazon S3 JavaScript API有一個方法bucket.list(),它將列出一個存儲桶的內容。

+0

它可能是解決方案,但我想首先獲取最新(和最後修改的)文件的有序列表,並且它不應該提供整個列表,因爲它可能非常大。我必須考慮如何選擇文件名,以便通過「前綴」參數 – andreaconsole

相關問題