小编use*_*332的帖子

如何使用预先签名的URL而不是凭据直接从浏览器上传到AWS S3?

我们想使用Javascript AWS SDK将文件上传到S3,但根本不使用凭据.使用凭据上传有效,但我们无法为每个应用用户生成AWS IAM用户(或者我们应该这样做?)

因此,与使用GET类似,我们希望服务器生成预签名URL,将其发送到浏览器,并将浏览器上传到该URL.

但是,没有关于如何实现这一目标的例子.此外,如果没有设置凭证,即使在上传到S3请求之前,SDK也会出错

code: "CredentialsError"
message: "No credentials to load"
Run Code Online (Sandbox Code Playgroud)

JS SDK文档提到了这一点,所以它似乎是可能的:

Pre-signing a putObject (asynchronously)
var params = {Bucket: 'bucket', Key: 'key'};
    s3.getSignedUrl('putObject', params, function (err, url) {
      console.log('The URL is', url);
});
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services

28
推荐指数
4
解决办法
2万
查看次数