【发布时间】:2021-01-12 03:45:42
【问题描述】:
我正在尝试从 gc 存储中批量删除 2 个文件,这取决于它们自己。到目前为止,我一直在做这样的事情:
exports.deleteImageFromBucket = async function (uri, bucket) {
const imagePath = getStoragePathFromUrl(uri);
try {
await bucket.file(imagePath).delete();
} catch (err) {
console.error(`Error deleting image ${uri} from storage`);
throw err;
}
};
但是,由于我有图像和它们各自的缩略图,如果我调用此函数两次并且其中一次拒绝,这将导致糟糕的用户体验。
有什么想法吗?
【问题讨论】:
-
您担心的不良用户体验是什么?
-
这里只删除一张图片?在 2 个不同的 URI(图像和缩略图)上调用 2 次这个函数有什么问题?
-
@DougStevensone 在客户端我有图像组件,首先加载缩略图,然后是 hq 图像。在我的算法中,我首先删除了这两个图像,然后删除了数据库中的关联文档。如果两个图像之一在删除它时失败,那么我的代码将不会触及数据库并向客户端抛出错误,说“稍后再试”之类的内容,只是为了确保存储完全回收(如果用户尝试稍后再做一次,那么两次删除可能会很好,并且存储中不会有任何不必要的垃圾之王)...
-
...但是没有批量操作,如果缩略图没有被删除,但是hq图像是的,那么用户会在图像中看到缩略图并且无法获得完整的质量一个(这是一个渐进式加载的图像)
标签: node.js firebase google-cloud-platform google-cloud-storage firebase-storage