2017-04-04 70 views
0

試圖找出AWS S3 API並失敗悲慘...AWS S3 API - 對象不包含元數據

我目前有一個包含大量視頻的存儲桶。

我需要請求所有的視頻作爲一個對象,這將有我上傳後設置的視頻元數據,以及共享視頻的鏈接。

問題是我得到的對象沒有任何以上的...

什麼Iv'e走到這一步 -

AWS.config.update({accessKeyId: 'id', secretAccessKey: 'key', region: 'eu- 
west-1'}); 
var s3 = new AWS.S3(); 

var params = { 
Bucket: 'Bucket-name', 
Delimiter: '/', 
Prefix: 'resource/folder-with-videos/' 

} 

s3.listObjects(params, function (err, data) { 
if(err)throw err; 
console.log(data); 
}); 

感謝您的閱讀:)

更新 - 發現使用getObject並將ExposeHeader添加到CORS設置時,我確實可以獲取我設置的元數據。 問題是getObject只適用於特定的對象(視頻在我的情況下)。

任何想法如何我可以得到所有的對象像listObject和每個對象的值,就像我做的getObject?

只有解決辦法,我能想到的是做的ListObject獲得所有對象的列表,然後通過這個結果對每個對象做一個AJAX的getObject?... RIP UX 謝謝:)

回答

0

一首先要理清幾件事。

根據文檔,http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property listObjects API返回回調參數中提到的內容。使用分隔符會導致S3僅列出給定前綴下一個級別的對象。它不會遞歸地遍歷所有對象。

爲了獲得URL,您可以使用http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getSignedUrl-property。我不確定你的元數據是什麼意思。

+0

上傳文件時,您可以添加要附加到文件的元數據(鍵值對)。這是我想要的。 我想我找到了這樣做沒有它壽,名稱應該是足夠好的,儘管結尾(文件名) ty tho :) url本身應該是固定的 – Ben

+0

apprently,這是不夠的..如果你可以看看我的帖子更新。謝謝 – Ben

+0

getObject將獲取對象的內容。如果您正在尋找在網頁中加載視頻,那麼getSignedUrl是正確的方法。但是,如果你想下載視頻,getObject是正確的。這就是說,你無法通過S3 SDK中的單個請求列出和「獲取」多個對象。因此,您首先列出對象,然後爲每個對象列出getObject。如果您只是想要元數據,請查看'headObject'一次。 – nightgaunt