我应该将什么密钥作为参数从 Amazon SDK 传递给 getSignedUrl
What key shoud i pass as parameter to getSignedUrl from Amazon SDK
我正在生成预签名 url 以便我可以将文件上传到 S3 存储桶。
var params = {Bucket: 'xxxxxxx', Key: 'key', Expires: 60};
var url = s3.getSignedUrl('putObject', params);
console.log('The URL is', url);
需要 Key 参数,但我在文档中找不到如何生成它。
如果我使用生成的 URL:
提交上传
xhr.open("PUT", url);
xhr.setRequestHeader('Content-Type', files[0].type);
xhr.setRequestHeader('x-amz-acl', 'authenticated-read');
xhr.send(files[0]);
它returns这个错误SignatureDoesNotMatch
我在 url 签名方法上遗漏了什么吗?
刚刚弄明白了。
签名 URL 的参数必须包含我在 header 上发送的所有内容,密钥是文件名。
var params = {Bucket: 'xxxxxxx', Key: 'filename.ext', Expires: 60, ACL:'authenticated-read', ContentType: 'applicattion/xxxxx'};
这解决了我的问题。
我正在生成预签名 url 以便我可以将文件上传到 S3 存储桶。
var params = {Bucket: 'xxxxxxx', Key: 'key', Expires: 60};
var url = s3.getSignedUrl('putObject', params);
console.log('The URL is', url);
需要 Key 参数,但我在文档中找不到如何生成它。
如果我使用生成的 URL:
提交上传xhr.open("PUT", url);
xhr.setRequestHeader('Content-Type', files[0].type);
xhr.setRequestHeader('x-amz-acl', 'authenticated-read');
xhr.send(files[0]);
它returns这个错误SignatureDoesNotMatch
我在 url 签名方法上遗漏了什么吗?
刚刚弄明白了。 签名 URL 的参数必须包含我在 header 上发送的所有内容,密钥是文件名。
var params = {Bucket: 'xxxxxxx', Key: 'filename.ext', Expires: 60, ACL:'authenticated-read', ContentType: 'applicattion/xxxxx'};
这解决了我的问题。