Обновление: В будущем, Amazon теперь обновила документацию из того, что было там в момент запроса. Согласно комментарию @Loren Segal ниже: -
Мы скорректировали документы в последней версии предварительного просмотра, чтобы правильно документировать этот параметр. Извините за смешение!
Я тестирую предварительный просмотр AWS SDK для Node.Js и хочу загрузить заархивированный 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
?