问题描述
我目前正在尝试将图像上传到 S3 存储桶(数字海洋空间)。 我在digitalocean spaces page上找到了一些关于使用multer和multer s3的信息,但是他们使用express js使用post请求发送文件。
我尝试使用meteor方法将图像发送到服务器并使用multer将其存储在s3中。
在客户端使用以下代码捕获图像并将其发送到服务器端:
'click #takePhoto': (event,template) => {
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
canvas.getContext('2d').drawImage(video,0);
const data = canvas.toDataURL('image/jpeg');
document.getElementById('photo').setAttribute('src',data);
// Meteor call to send the canvas to the server for storing on s3
Meteor.call('uploadPicture',data,template.data);
}
在服务器端,我使用以下代码连接到 s3,并尝试将文件上传到 mul
const spacesEndpoint = new AWS.Endpoint('ams3.digitaloceanspaces.com');
const s3 = new AWS.S3({
endpoint: spacesEndpoint,accessKeyId: Meteor.settings.private.digitalOceanSpaces.accessKeyId,secretAccessKey: Meteor.settings.private.digitalOceanSpaces.secretAccessKey
});
var upload = multer({
storage: multerS3({
s3: s3,bucket: 'test-bucket'
Metadata: function (req,file,cb) {
cb(null,{ fieldName: file.fieldname });
},key: function (req,Date.Now().toString())
}
})
})
upload.single(picture);
最后上传的图片来自发送到服务器的 canvas.toDataURL('image/jpeg') 函数。
当我现在运行这个函数时,它不会给我一个错误,但它也没有出现在空格上,所以它没有正确发送。
我想知道是否有人能够使这个工作正常进行,或者他们是否使用不同的解决方案将图像上传到 s3 存储。我也无法弄清楚我可以在这里的某个地方捕获错误以获取更多调试信息,因为它给我带来了问题。
先谢谢你!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)