【发布时间】:2016-09-16 01:24:24
【问题描述】:
我在一家金融机构工作,出于安全原因,我的雇主不能将 access key id 和 access key secret 提供给 AWS 账户。这意味着我不能使用aws-sdk。
作为下一个选项,是否可以使用 HTTP PUT 将文件上传到公共 S3 存储桶而不使用需要 access key id 和 access key secret 的 AWS-SDK?
我看过这个答案:How to upload a file using a rest client for node
并且正在考虑这种方法:
var request = require('request');
var options = {
method: 'PUT',
preambleCRLF: true,
postambleCRLF: true,
uri: 'https://s3-ap-southeast-2.amazonaws.com/my-bucket/myFile.pdf',
multipart: [
{
'content-type': 'application/pdf'
body: fs.createReadStream('/uploads/uploaded-file.pdf')
}
]
}
request(options, function(err, response, body){
if(err){
return console.log(err);
}
console.log('File uploaded to s3');
});
这行得通吗?
【问题讨论】:
-
出于安全原因,我的雇主不能将访问密钥 ID 和访问密钥秘密提供给 AWS 账户。 停止。这是一个有严重缺陷的前提。没有“the”(单个)访问密钥/秘密。您可以根据需要创建任意数量的密钥和随附的密钥,每个密钥都有自己的单独权限。您还可以将权限委派给其他 AWS 账户拥有的密钥。使用可公开写入的存储桶没有任何意义。
标签: node.js amazon-s3 npm-request