tet*_*tar 1 javascript amazon-s3 amazon-web-services node.js
我想将文件从我的前端上传到我的 Amazon S3 (AWS)。
我正在使用 dropzone,所以我转换了我的文件并将其发送到我的后端。
在我的后端我的文件是这样的:
{ fieldname: 'file',
originalname: 'test.torrent',
encoding: '7bit',
mimetype: 'application/octet-stream',
buffer: { type: 'Buffer', data: [Array] },
size: 7449 },
Run Code Online (Sandbox Code Playgroud)
当我尝试使用我的函数上传文件时:
var file = data.patientfile.file.buffer;
var params = { Bucket: myBucket, Key: data.patientfile.file.fieldname, Body: file };
s3.upload(params, function (err, data) {
if (err) {
console.log("******************",err)
} else {
console.log("Successfully uploaded data to myBucket/myKey");
}
});
Run Code Online (Sandbox Code Playgroud)
我得到错误:
不受支持的正文有效负载对象
你知道如何发送我的文件吗?
我试图将其发送putobject并收到类似的错误。
我认为您可能需要将文件内容(在这种情况下可能是 data.patientfile.file.buffer)转换为二进制
var base64data = new Buffer(data, 'binary');
Run Code Online (Sandbox Code Playgroud)
所以参数会是这样的:
var params = { Bucket: myBucket, Key: data.patientfile.file.fieldname, Body: base64data };
Run Code Online (Sandbox Code Playgroud)
或者,如果我弄错了并且缓冲区已经是二进制的,那么您可以尝试:
var params = { Bucket: myBucket, Key: data.patientfile.file.fieldname, Body: data.patientfile.file.buffer};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7320 次 |
| 最近记录: |