我正在将博客文章存储在Firebase数据库中。博客文章可以具有图像。我有一个存储图像的存储桶,并将URL和帖子一起保存到数据库中。现在,我正在编辑帖子。其中一部分涉及上传其他图片。我不希望图像无限期地堆积在我的存储桶中。我宁愿用新图像替换旧图像。这就是我的做法:
const bucket = fbAdmin.storage().bucket('***');
if (fields.filename) {
await bucket.file(fields.filename).delete();
}
const result = await bucket.upload(files.image.path, {metadata: {contentType: files.image.type}});
换句话说,我删除旧文件,然后上传新文件。
但是我必须认为必须有一种更简单的方法。不是删除和上传,没有更新功能吗?类似于:
bucket.update(files.image.path, {name: oldFileName});
谢谢
您可以先写入存储桶中的相同路径,而无需先删除文件。
const bucket = fbAdmin.storage().bucket('***');
const result = await bucket.upload(files.image.path, {metadata: {contentType: files.image.type}});
如果文件已经存在,它将覆盖它。