Laden Sie mithilfe von AWS SDK für Node.js eine Binärdatei in S3 hoch

Update: Für die Zukunft, Amazon haben nun aktualisiert, die Dokumentation von dem, was war es an der Zeit zu Fragen. Als pro @Loren Segal ' s Kommentar unten:-

Haben wir korrigiert die docs in der neuesten preview-Version zu dokumentieren, diese parameter richtig. Sorry für die Verwechslung!


Ich versuche die Entwickler-Vorschau von das AWS SDK für Node.Js und hochladen möchten, eine gezippte tarball S3 mit putObject.

Laut die Dokumentationdie Body parameter werden sollte...

Körper - (Base64-Codierte Daten)

...also, ich versuche den folgenden code...

var AWS = require('aws-sdk'),
    fs = require('fs');

//For dev purposes only
AWS.config.update({ accessKeyId: 'key', secretAccessKey: 'secret' });

//Read in the file, convert it to base64, store to S3
fs.readFile('myarchive.tgz', function (err, data) {
  if (err) { throw err; }

  var base64data = new Buffer(data, 'binary').toString('base64');

  var s3 = new AWS.S3();
  s3.client.putObject({
    Bucket: 'mybucketname',
    Key: 'myarchive.tgz',
    Body: base64data
  }).done(function (resp) {
    console.log('Successfully uploaded package.');
  });

});

Zwar sehe ich dann die Datei in S3, wenn ich laden Sie es und versuchen, um Sie zu entpacken bekomme ich eine Fehlermeldung, dass die Datei beschädigt ist. Es scheint daher, dass meine Methode für 'base64-kodierten Daten" ausgeschaltet ist.

Kann mir bitte jemand helfen, laden Sie eine Binärdatei mit putObject?

InformationsquelleAutor der Frage isNaN1247 | 2012-12-10

Schreibe einen Kommentar