【发布时间】:2019-04-30 23:32:18
【问题描述】:
我在将本地图片上传到我的谷歌云存储时遇到问题。
我已经尝试了两种方法。第一个是用multer上传
var storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, './uploads/')
},
filename: (req, file, cb) => {
cb(null, file.fieldname + '-' + Date.now())
}
});
var upload = multer({storage: storage}).single('image');
app.post('/upload',function(req,res,next){
upload(req,res,(err) => {
if(err){
console.log(err)
}else{
console.log(req.file)
}
})
})
然后,我直接用 GCS 试过了
var bucket = admin.storage().bucket('mybucket')
app.post('/upload',function(req,res,next){
bucket
.save(file)
.then(() => {
})
对于这两种解决方案,req.files 始终是 undefined 而req.body 是这样的缓冲区:
<Buffer 2d 2d 2d 2d ...>
当我尝试将此缓冲区保存在我的 GCS 存储桶中时,我的存储桶中创建了 .jpg/png 文件,但它已损坏。
我正在浏览网页寻找解决方案,但没有发现任何可以帮助我克服这种情况的东西。
有什么建议吗?
【问题讨论】:
-
使用 multer 时,请确保为您要上传到的存储系统设置了存储引擎。 [谷歌云存储可以试试这个](npmjs.com/package/multer-google-storage)
标签: node.js google-cloud-platform google-cloud-storage image-uploading multer