我尝试使用AWS.S3 API http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getSignedUrl-property中的Person
方法访问我放置的数据。当我使用方法返回的url时,我收到错误。
将数据放入S3存储桶的代码
getSignedUrl
当从POSTMAN对返回的URL执行GET请求时,我收到以下页面,其中删除了一些安全信息
var params = {
Bucket: BUCKET_NAME,
Key: 'testing132',
Body: 'tasdfasfasdfs',
Expires: EXPIRATION_TIME,
ACL: 'public-read'
};
$log.info('test s3 dep', this);
s3.getSignedUrl('putObject', params, function (err, url) {
if (err) return cb(err);
return cb(null, url);
});
答案 0 :(得分:0)
所以有些混乱,我没有仔细阅读文档。我假设getSignedUrl
方法中的'putObject'参数意味着我将一个对象上传到指定的键,然后检索该对象的url。这个假设是错误的,基本上putObject
参数意味着您指定用户正在对生成的URL进行PUTTING的对象的特征。使用getObject
解决了问题。来自文档You can use this functionality [putObject] to generate pre-signed PUT operations that require a specific payload to be uploaded by the consumer of the URL.