[英]getObject from AWS s3 bucket using Javascript SDK: “missing credential” error
我正在使用Javascript AWS開發工具包。 我包括這個:
我要做的就是獲取已存儲在s3存儲桶中的GET對象。
客戶端代碼可以訪問s3中存儲的對象的(工作)URL。 看起來像這樣:
https://s3.amazonaws.com/my-bucket-name/my-object-key
我的客戶應用程序當前有許多此類URL。 我通過模擬這些URL鏈接的點擊成功下載了文件。
我想做的是在腳本中將所有文件放在一起,以便我可以使用JSzip將它們捆綁成具有良好文件夾結構的zip文件。
我正在嘗試執行以下操作(這包括我的代碼庫中所有與s3相關的代碼):
var bucketName = 'my-bucket-name';
var s3 = new AWS.S3( {
params: {
Bucket: bucketName
}
} );
var key = myFileUrl.split('my-bucket-name/')[1];
var params = {
Key: key
};
s3.getObject(params, function(err, data) {
if (err) console.log("error!" + err + err.stack); // an error occurred
else {
console.log("success getting file from S3:",data); // successful response
}
});
運行此命令時,出現“ CredentialsError:配置中缺少憑據”錯誤。
我實際上不需要任何憑證,對嗎? 該文件是公開的,我只需點擊鏈接即可獲取。 我查看了使用Javascript(客戶端)SDK的AWS文檔,但他們沒有設置任何類型的配置對象。
有沒有人得到這個工作? 我究竟做錯了什么?
Javascript AWS開發工具包包裝了S3 REST API, 該 API 需要在GetObject上進行身份驗證(請參閱注釋) 。 如果您不想提供身份驗證(請注意,您可以僅具有GetObject權限創建AMI角色),則可以發出普通的Web請求,例如,如果使用瀏覽器,則可以使用fetch或XMLHttpRequest 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.