javascript - 图片未上传到 Firebase 存储桶中
问题描述
我正在尝试在我的 Firebase 存储桶中上传图片。这是我的代码:
exports.uploadImage = (req, res) => {
const BusBoy = require('busboy')
const path = require('path')
const os = require('os')
const fs = require('fs')
const busboy = new BusBoy({ headers: req.headers })
let imageFileName
let imageToBeUploaded = {}
busboy.on('file', (fieldname, file, filename, encoding, mimetype) => {
if(mimetype !== 'image/jpeg' && mimetype !== 'image/jpg' && mimetype !== 'image/png') {
return res.send(400).json({ message: 'Wrong File Submitted' })
}
const imageExtension = filename.split('.')[filename.split('.').length - 1]
imageFileName = `${Math.round(Math.random() * 100000000).toString()}.${imageExtension}`
const filepath = path.join(os.tmpdir(), imageFileName)
imageToBeUploaded = { filepath, mimetype }
file.pipe(fs.createWriteStream(filepath))
})
busboy.on('finish', () => {
admin.storage().bucket().upload(imageToBeUploaded.filepath, {
resumable: false,
metadata: {
metadata: {
contentType: imageToBeUploaded.mimetype
}
}
}).then(() => {
const imageUrl = `https://firebasestorage.googleapis.com/v0/b/${config.storageBucket}/o/${imageFileName}?alt=media`
return db.doc(`/users/${req.user.handle}`).update({ imageUrl })
}).then(() => {
res.json({ message: 'Image Uploaded Successfully' })
}).catch(err => {
console.error(err)
return res.status(500).json({ error: err.code })
})
})
busboy.end(req.rawBody)
}
这里的问题是,每当我尝试上传图像时,它都会给我一个错误,即存储桶名称不正确。请帮忙。
解决方案
我遇到了同样的问题,并通过在初始化应用程序时声明存储桶的名称来解决它。
// Firestore database
const admin = require('firebase-admin');
admin.initializeApp({
storageBucket: 'storage-bucket-name'
});
添加在您的 admin sdk 中找到的存储桶名称,您应该一切顺利!
推荐阅读
- kubernetes - 让 kubernetes 中的所有命名空间都可以使用 secret
- php - 用于脚本的不同实例的 PHP 保存数组
- oracle - 为 debezium 数据挖掘配置 oracle 数据库时出错
- sql - 输入雪花中缺失类别的数据
- python - FileNotFoundError:[Errno 2] 没有这样的文件或目录:'credentials.json'
- python-3.x - 在 python 中为简单的单人二十一点编写“hit_or_stand”函数
- mysql - 如何使用 Nodejs 将 AWS 上的 EC2 实例连接到 RDS MySQL 数据库?
- angular - Angular - 如何处理 Observable 的
- angular - 如何以角度重置表单组?
- javascript - 如何调用一个返回 fetch 调用的函数?香草JS