【问题标题】:What is the best practice to delete multiple objects(files and folders) from google cloud storage using node.js使用 node.js 从谷歌云存储中删除多个对象(文件和文件夹)的最佳做法是什么
【发布时间】:2020-03-13 21:38:41
【问题描述】:

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

bucket.deleteFiles({ prefix: 'image-' }, callback);

这将删除images 目录中的所有文件。 但是如果我想删除这个目录中的 10 000 个文件呢? 我的演示代码是这样的:

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');
    }
};

有没有更好的方法来做到这一点? 如果其他人同时在我要删除的文件夹中上传新文件怎么办?在这种情况下,该文件也将被删除。

【问题讨论】:

    标签: node.js google-cloud-platform google-cloud-storage


    【解决方案1】:
    • 有没有更好的方法来做到这一点?

      Here您可能会找到适用于您的用例的有关对象删除和批量对象删除的最佳实践。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2021-03-30
      • 1970-01-01
      • 2015-08-03
      • 2017-07-22
      • 2018-09-24
      • 2016-08-29
      相关资源
      最近更新 更多