2016-09-16 2 views
0

Je travaille dans une institution financière et pour des raisons de sécurité, mon employeur ne peut pas donner le access key id et le access key secret au compte AWS. Cela signifie que je ne peux pas utiliser aws-sdk. En tant qu'option suivante, est-il possible de télécharger des fichiers à l'aide de HTTP PUT vers un compartiment public S3 sans utiliser le kit AWS-SDK qui nécessite le access key id et le access key secret?Télécharger un fichier sur Amazon S3 en utilisant HTTP PUT

J'ai regardé cette réponse: How to upload a file using a rest client for node

et a été pensée de cette approche:

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'); 
}); 

pourrait-il fonctionner?

+2

* pour des raisons de sécurité mon employeur ne peut pas donner l'identifiant clé d'accès et le secret clé d'accès au compte AWS. * Arrêtez. C'est une prémisse sérieusement défectueuse. Il n'y a pas de clé d'accès/secret "unique". Vous pouvez créer autant de clés et de secrets d'accompagnement que vous le souhaitez, chacun avec ses propres autorisations individuelles. Vous pouvez également déléguer des autorisations aux clés appartenant à d'autres comptes AWS. L'utilisation d'un bucket publiquement inscriptible n'a aucun sens. –

Répondre

1

Votre code ci-dessus ne fonctionne que si vous avez un stockage personnalisé (qui devrait aussi être public) et non pour le stockage AWS.

Pour le stockage AWS access key id et access key secret est obligatoire, sans ceux-ci vous ne pouvez pas télécharger les fichiers sur le stockage

+0

Merci d'avoir clarifié @Supraj v – ChrisRich