Update:.为了将来的参考,亚马逊现在根据询问时的文档更新了文档.根据@Loren Segal的以下 comments :-
我们已经更正了最新预览版本中的文档,以正确记录此参数.抱歉搞砸了!
我正在试用the AWS SDK for Node.Js的开发者预览版,想用putObject
上传一个压缩的tarball到S3.
根据the documentation,Body
参数应该是...
正文-(Base64编码数据)
...因此,我正在try 以下代码...
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中看到该文件,但如果我下载并try 解压缩它,我会得到一个错误,即该文件已损坏.因此,我的"base64编码数据"方法似乎已关闭.
有人能帮我用putObject
上传一个二进制文件吗?