簡體   English   中英

使用JavaScript SDK從AWS s3存儲桶中獲取getObject:“缺少憑證”錯誤

[英]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請求,例如,如果使用瀏覽器,則可以使用fetchXMLHttpRequest

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM