2016-09-16 188 views
0

我在一家金融机构工作,出于安全原因,我的雇主不能给出来的access key idaccess key secret到AWS账户。这意味着我不能使用aws-sdk上传文件到Amazon S3 PUT

作为下一个选项,是否可以使用HTTP PUT将文件上传到公共S3存储桶而无需使用需要access key idaccess 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'); 
}); 

莫非这项工作?

+2

*出于安全原因,我的雇主不能发出访问密钥ID和访问密钥秘密的AWS账户。*停止。这是一个严重缺陷的前提。没有“(单个)”访问密钥/秘密。您可以根据需要创建尽可能多的密钥和伴随的秘密,每个秘密都有自己的个人权限。您还可以将权限委托给其他AWS账户拥有的密钥。使用可公开写入的存储桶是没有意义的。 –

回答

1

上述代码仅适用于您具有自定义存储(也应该是公共存储)且不适用于AWS存储的情况。

对于AWS存储access key idaccess key secret是强制性的,没有这些你不能上传文件到存储

+0

感谢您澄清@Supraj v – ChrisRich