我正在使用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。>