我正在使用api在AWS s3上上传图像。首先我需要将图像保存到AWS,然后需要将URL保存到mongo数据库。但是当我尝试上传图像时遇到此错误。我在clinet端使用lepozepo:s3库,并希望在服务器端使用相同的库。我下面提到的代码与lepozepo库一起使用。 http://prntscr.com/ohareb
Meteor.call('uploadProfilePic', this.request.body, function (error, resp) {
if (error) {
response = {
"errorCode": true,
"statusMessage": error.message,
}
}else{
response = {
"errorCode": false,
"statusMessage": "Picture uploaded successfully",
}
}
});
this.response.setHeader('Content-Type', 'application/json');
this.response.end(JSON.stringify(response));
});
在方法中,我创建了此方法。
uploadProfilePic:function(image){
var files = image;
userId = "MMKKK79KQ7eMs6777Hh";
import {S3} from "meteor/lepozepo:s3";
console.log(files);
S3.uploadFile({
files:files,
path:"avatars"
},function(e,r){
if (!e) {
var $set={};
$set[templ.data.picType]=r.secure_url;
Meteor.users.update({
_id: userId
}, {
$set: $set
}, function(err) {
if (!err) {
console.log( "Image uploaded");
} else {
console.log("Error updating image");
}
});
} else {
console.log( "Error updating image");
}
});
}
答案 0 :(得分:0)
我维护此软件包:https://github.com/activitree/s3up-meta。 有了它,您可以向S3上传文件或从S3删除文件。您还可以设置用于缓存的元数据并使其过期,无论如何您都可以从Cloudfront CDN覆盖元数据(以防您通过Cloudfront分发映像)。 该程序包基于AWS sdk,所有请求均由Meteor服务器签名,但是文件直接从客户端移至S3。 如果需要,请在Git上打开一个问题。 干杯