更新:为了将来的参考,亚马逊现在已经更新了询问时的文档。根据@Loren Segal在下面的评论:-
我们已经更正了最新预览版中的文档,以正确记录此参数。很抱歉搞砸了!
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.');
});
});
有人能帮我使用putobject
上传二进制文件吗?
您不需要将缓冲区转换为base64字符串。只需将body设置为data,它就可以工作了。
下面是一个上传二进制文件的例子,WebService类的代码如下: package service; import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; import javax.activation.DataHandler; public class
问题内容: 为了将二进制文件上传到URL,建议使用本指南。但是,该文件不在目录中,而是存储在MySql db的BLOB字段中。BLOB字段在JPA中映射为属性: 我以这种方式稍微修改了指南中的代码: 我没有使用分块流。使用的标头是: 主机正确接收了所有标头。它还接收上载的文件,但不幸的是,它抱怨该文件不可读,并且断言所接收文件的大小比我的代码输出的大小大37个字节。 我对流,连接和byte []的
问题内容: 我正在使用Flash录制音频并将其上传到节点服务器。Flash客户端是jrecorder的变体。当用户完成录制后,将使用POST请求(而不是表单,因为Flash无法创建文件)来上传音频,并将音频ByteArray作为POST请求的数据(请参见此处的更多信息)。 我可以使用下面的代码在Node- land上正确接收文件,但是发出的音频被破坏了,您听不到任何声音。话虽如此,该文件的内容可以
问题内容: 我正在使用FileReader.readAsBinaryString使用多部分/表单数据POST请求将文件上传到服务器。 文件被发送,服务器接收并保存文件。 当我尝试在服务器上打开文件时,收到消息称该文件已损坏(png图像),或者我看到一个空白文档(对于pdf)。显然出了点问题。 是否还需要对FileReader.onload处理程序中的event.target.result返回的数据
我正试图通过我的服务器将一个二进制文件从客户端请求流到谷歌云存储。 我使用Tornado框架将数据从请求流到服务器,并使用Google Cloud Storage API将文件流到Google-方法。 我是Tornado的新手,我正在使用装饰器,这样我就可以从请求中获取数据块,并将每个块上传到Google。 我试着打开一个类似文件的对象,我可以在将文件本身上传到谷歌的同时编写每一个块。 问题是,我
问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示