我们想使用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)