我使用了连接多方中间件,我有以下代码:
console.log(req.files)
var data = {
Key: req.body.filename,
Body: req.files,
ContentType: 'image/jpeg'
};
s3Bucket.putObject(data,function(err,result){
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
我在终端中得到以下结果:
{ photo:
{ fieldName: 'photo',
originalFilename: 'blob',
path: '/var/folders/n1/fr69rt5j01sfwjhsh3jx3gh00000gn/T/Tw4pwoPQ5D7zCGxrk3U1ywKp',
headers:
{ 'content-disposition': 'form-data; name="photo"; filename="blob"',
'content-type': 'image/jpeg' },
size: 50138,
name: 'blob',
type: 'image/jpeg' } }
{ [InvalidParameterType: Expected params.Body to be a string, Buffer, Stream, Blob, or typed array object]
message: 'Expected params.Body to be a string, Buffer, Stream, Blob, or typed array object',
code: 'InvalidParameterType',
Run Code Online (Sandbox Code Playgroud)
任何线索这不起作用?应该是什么Body值?
如果您有 base64 格式的图像,您可以使用以下方法。
这个的参数是
1.图像:base64格式的图像
2. FileName : 字符串中的文件名 例如:'name.jpg'
var UploadFilesToS3 = function(image,FileName) { //
buf = new Buffer(image.replace(/^data:image\/\w+;base64,/, ""),'base64');
var data = {
Key: FileName,
Body: buf,
ContentEncoding: 'base64',
ContentType: 'image/jpeg'
};
s3Bucket.putObject(data,function (data,err){
if(err)
{
console.log('failed to Upload: '+ err.body);
}
});
};
Run Code Online (Sandbox Code Playgroud)
而且您还需要在像这样调用此方法之前进行 AWS 配置
var AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: '',
secretAccessKey: '',
region: ''
});
var s3Bucket = new AWS.S3( { params: {Bucket: 'name of the bucket'} } );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5665 次 |
| 最近记录: |