更新:将来の参考のために、Amazonは質問時にあったものからドキュメントを更新しました。以下の@LorenSegalのコメントによると:-
このパラメータを適切に文書化するために、最新のプレビューリリースのドキュメントを修正しました。取り違えでごめんなさい!
AWS SDK for Node.Jsの開発者向けプレビューを試していますが、を使用してzip形式のtarballをS3にアップロードしたいと考えていputObject
ます。
ドキュメントによると、Body
パラメータは...
本文-(Base64エンコードデータ)
...したがって、私は次のコードを試しています...
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.');
});
});
その後、S3でファイルを表示できますが、ファイルをダウンロードして解凍しようとすると、ファイルが破損しているというエラーが表示されます。したがって、「base64でエンコードされたデータ」のメソッドがオフになっているようです。
誰かが使用してバイナリファイルをアップロードするのを手伝ってもらえますputObject
か?