【发布时间】:2018-12-27 02:14:49
【问题描述】:
我正在获取一个预签名 URL,用于在 S3 存储桶上上传文件。
这是 curl 命令:
curl -v -T ./dansero.jpg 'https://ss-files-dev.s3.ap-southeast-2.amazonaws.com/dansero.jpg\?AWSAccessKeyId\=AKIAIT6VM43PPNS43Y7Q\&Expires\=1531973770\&Signature\=hNvG5rnICkk58mMBLeMgHGDZ93c%3D'
这给了我错误:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
</Error>
这里是我的 node.js 生成的预签名 URL
var AWS = require('aws-sdk');
const s3 = new AWS.S3({
accessKeyId: 'aaa',
secretAccessKey: 'bbb+oeyjn8zGANuDyCIY',
region: 'ap-southeast-2'
});
const params = {
Bucket: 'ss-files-dev',
Key: 'dansero.jpg'
};
});
s3.getSignedUrl('putObject', params, function(err, urlsign) {
if (err) console.log(err);
console.log(urlsign);
});
那么,我在 URL 生成或 curl 中的问题在哪里? 谢谢
【问题讨论】:
-
从您的 URL 中删除所有反斜杠 \。您使用
'单引号字符串提供 curl 的 URL,因此这些不是必需的,实际上没有意义。
标签: node.js amazon-web-services curl amazon-s3