【问题标题】:Altering file names of Azure blobs in bulk批量更改 Azure Blob 的文件名
【发布时间】:2017-09-30 00:17:22
【问题描述】:

如何批量为 Azure blob 文件名添加前缀?

我正在寻求一种有效的方法来管理 Azure 存储上约 10M 小型 blob 文件的此操作。我的偏好是通过 Python 进行(如果可能的话)。


如果目前的 API 无法做到这一点,我可以求助于哪些替代方案?

我需要使用 azcopy 从我的 Azure 存储中下载精选的 blob 文件(它给我的唯一区分过滤器是基于前缀的过滤)。我需要一种解决方法来处理数百万个小型文件对象。如果迫不得已,我也愿意根据文件名批量删除 blob 文件(并留下我需要的文件)。

【问题讨论】:

    标签: azure azure-blob-storage


    【解决方案1】:

    如何为 Azure blob 文件名批量添加前缀?

    添加前缀本质上是重命名存储 API 当前不支持的 blob。此外,每个 blob 操作都是原子的,因为它适用于单个 blob。

    要重命名 blob,您需要执行 2 个操作 - CopyDelete。您要做的是首先将 blob 复制到另一个 blob。这个新 blob 的名称将是您要提供的名称,即前缀 + 原始 blob 名称。由于您要在同一个 blob 容器中复制 blob,因此它将是即时的。复制 Blob 后,您将删除原始 Blob。

    编辑:批量删除

    关于您对批量删除的评论,很遗憾,没有 API 可以这样做。您将需要单独删除每个 blob。如果要重命名容器中的所有 blob,则可以加快此操作。在这种情况下,您只需将 blob 从源容器复制到另一个容器,一旦复制 blob,您就可以简单地删除源容器。如果您只想重命名 blob 容器中的 blob 子集,这显然行不通。

    【讨论】:

    • 嘿高拉夫。您能否也说明一下bulk deletion?想象一下,我有一个需要从存储中删除的 10M 小型 blob 对象的列表(如果 ~20M,则 blob 对象的总数)。那里最实用的方法是什么?这是我问题的最后一行提出的。
    • 该死,所以它看起来更像是全有或全无的游戏。
    • 不幸的是,至少目前是这样。
    • 与这个问题无关,但是与 Azure blob 存储的 API 相比,AWS S3 存储的灵活性如何?我会在 AWS 营地成为更快乐的露营者吗?
    • 如果我没记错的话,在你的场景中它在 S3 中也是一样的。很久以前,我对 S3 和 Azure Blob 存储进行了比较。你可以在这里阅读这些帖子:gauravmantri.com/tag/amazon-s3。从那时起,Azure 存储已经发展了很多,我相信 S3 也必须如此。
    猜你喜欢
    • 2019-05-16
    • 2020-03-02
    • 2019-09-19
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    相关资源
    最近更新 更多