使用 Javascript 开发工具包从 AWS s3 存储桶获取对象:"缺少凭证"错误



我正在使用JavaScript AWS SDK。我将其包括在内:

我要做的就是将已经存储在S3桶中的对象。

客户端代码可以访问存储在S3上的对象的(工作)URL。看起来这样:

https://s3.amazonaws.com/my-bucket-name/my-object-key

我的客户端应用当前有很多此类URL。我通过模拟这些URL的链接成功下载文件。

我想做的就是将所有文件放在脚本中,以便我可以使用JSZIP将它们捆绑到带有NICE文件夹结构的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
      }
    });

当我运行此操作时,我会得到一个" recertentialSerror:config中缺少凭据"错误。

我实际上不应该为此需要任何凭据,对吗?该文件是公开的,我只能按照链接来获得它。我查看了使用JavaScript(client)SDK的AWS文档,但它们没有设置任何形式的配置对象。

有人让这个工作了吗?我在做什么错?

JavaScript AWS SDK包裹S3 REST API,这需要在GetObject上进行身份验证(请参阅注释)。如果您不想提供身份验证(请注意,只需使用getObject许可即可创建AMI角色),则可以在使用浏览器时只能制作正常的Web请求,例如使用fetch或xmlhttprequest。>

最新更新