【发布时间】:2021-06-03 10:00:56
【问题描述】:
我正在尝试将文件上传到 Google Cloud Storage 存储桶和 MongoDB,这实际上是有效的,但更改文件名并不是因为我不能,我已经在网上查找了它,但看不到类似的代码我的那么我如何更改文件originalname 添加date.now() 到它。
我的代码
const multer = Multer({
storage: Multer.memoryStorage(),
limits: {
fileSize: 5 * 1024 * 1024, // no larger than 5mb, you can change as needed.
},
});
//CREATE FEED
Router.post('/', multer.array('files'), authoriazation, async (req, res) => {
const { txt, Feedtype } = req.body
const text = htmlToText(txt, {
wordwrap: 130
});
// uploading multiple image
const creteFeed = await new Feed({
feedby: req.user,
feedTxt: text,
deleted: 0,
feedReaction: 0,
feedComment: 0,
feedShare: 0,
feedType: Feedtype,
})
const newFeed = await creteFeed.save()
if (req.files.length > 0) {
for (newfile of req.files) {
const blob = bucket.file(newfile.originalname);
const blobStream = blob.createWriteStream();
if (newFeed) {
const FeedMed = await new FeedMedia({
feed_id: newFeed._id,
feedby: req.user,
feedMedia_type: newfile.mimetype,
feedMedia_name: newfile.originalname,
category: 'feed',
url: `https://storage.googleapis.com/${bucket.name}/${newfile.originalname}`,
deleted: 0
})
const newFeedMed = await FeedMed.save()
}
blobStream.on('finish', async() => {
});
blobStream.end(newfile.buffer);
}
}
res.json('success')
})
【问题讨论】:
-
bucket文件名是否有
originalName作为名字?除了originalName之外,您是否只想将日期附加到文件名? -
为什么不能只在 DB 中存储
originalname并生成唯一的文件名以存储在 GCS 中? -
是的,我想将日期附加到文件名而不是原始名称,然后将其保存到数据库中
标签: node.js mongodb google-cloud-storage