2016-09-16 5 views
0

Я работаю в финансовом учреждении, и по соображениям безопасности мой работодатель не может выдать access key id и access key secret на учетную запись AWS. Это означает, что я не могу использовать aws-sdk.Загрузить файл на Amazon S3 с помощью HTTP PUT

В качестве следующего варианта можно ли загружать файлы с использованием HTTP PUT в общедоступный ведро S3 без использования AWS-SDK, для которого требуются access key id и access key secret?

Я посмотрел на этот ответ: 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

* по соображениям безопасности мой работодатель не может выдать идентификатор ключа доступа и ключ в тайне доступа к учетной записи AWS. * Стоп. Это серьезная ошибочная предпосылка. Отсутствует ключ (ключ)/секретный ключ (один). Вы можете создать столько ключей и сопутствующих секретов, сколько вам нужно, каждый со своими индивидуальными разрешениями. Вы также можете делегировать разрешения на ключи, принадлежащие другим учетным записям AWS. Использование общедоступного ведра не имеет смысла. –

ответ

1

Ваш вышеуказанный код работает только в том случае, если у вас есть пользовательское хранилище (это тоже должно быть общедоступно), а не для хранилища AWS.

Для хранения AWS access key id и access key secret является обязательным, без них вы не можете загрузить файлы на хранение

+0

Спасибо за разъяснение @Supraj v – ChrisRich

Смежные вопросы