使用node.js从google云存储中删除多个对象(文件和文件夹)的最佳实践是什么

使用node.js从google云存储中删除多个对象(文件和文件夹)的最佳实践是什么,node.js,google-cloud-platform,google-cloud-storage,Node.js,Google Cloud Platform,Google Cloud Storage,我想从我的谷歌云存储中删除多个对象,这意味着同时删除文件夹和文件。官方文件中有一个例子: bucket.deleteFiles({ prefix: 'image-' }, callback); 这将删除图像目录中的所有文件。 但是如果我想删除这个目录中的10000个文件呢? 我的演示代码如下: const _deleteItems = async (gcsClient, bucketName, allItems) => { try { for (let item

我想从我的谷歌云存储中删除多个对象,这意味着同时删除文件夹和文件。官方文件中有一个例子:

bucket.deleteFiles({ prefix: 'image-' }, callback);
这将删除
图像
目录中的所有文件。 但是如果我想删除这个目录中的10000个文件呢? 我的演示代码如下:

const _deleteItems = async (gcsClient, bucketName, allItems) => {
    try {
        for (let item of allItems) {
            await gcsClient.bucket(bucketName).deleteFiles({ prefix: getFilePath(item) }, function(err) {});
        }
    } catch (err) {
        throw new Error('Could not delete item');
    }
};
有更好的方法吗? 如果其他人同时上传我要删除的文件夹中的新文件,该怎么办?在这种情况下,该文件也将被删除。

  • 有更好的方法吗?

    您可以找到适用于您的用例的关于对象删除和批量对象删除的最佳实践

  • 如果其他人同时上传我要删除的文件夹中的新文件,该怎么办?在这种情况下,该文件也将被删除。

    在这种情况下,您需要使用并设置一个规则来保护具有特定“期限”的文件。您还可以使用“保护您的云存储数据不被覆盖或意外删除” 但请记住以下几点:

    • “启用对象版本控制会增加存储成本”

    • 在启用对象版本控制的存储桶中使用对象生命周期管理时,删除对象的实时版本将创建非当前版本,而删除非当前版本将永久删除该版本