【问题标题】:Batch Copy/Delete some blobs in container批量复制/删除容器中的一些 blob
【发布时间】:2020-10-09 11:26:00
【问题描述】:

我有成千上万个容器,每个容器内部最多有 10k 个 blob。我有一个元组列表(container, blob)

  1. 复制到另一个存储
  2. 稍后在原始存储中删除

容器中的 blob 彼此不相关 - 随机创建日期、随机名称 (guid),没有任何共同点。

问:有没有什么有效的方法来做这些操作?

我已经看过az-cliazcopy 并没有找到任何好的方法。 我试过了,例如为每个元组重复调用azcopy,但这需要很长时间。一个复制 blob 的调用平均需要 2 秒。所以它在后台启动操作很好,但是如果这个“启动操作”需要大约 2 秒,这对我的情况来说毫无用处。

【问题讨论】:

  • 所以您只想从容器中复制某些 Blob,而不是整个容器?
  • 是的,正是@404
  • 您可以查看 azcopy 中的 --include-path 选项,因此每个容器只需运行一次,尽管我不确定它如何容纳数千个文件。

标签: azure azure-storage azure-cli azcopy


【解决方案1】:

我假设基于每个容器内的 cmets,它是要复制和删除的任意数量(和命名)的 blob。并且删除仅适用于复制的 blob(而不是完整的容器)。如果是这样,并且想要使用除 REST 之外的其他东西,一个建议是 Powershell 脚本从文件中读取要复制的 blob 列表(服务端复制),然后单独执行删除(更有效地执行复制,如果成功,则删除)例如https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobcopystate?view=azps-4.7.0#example-4--start-copy-and-pipeline-to-get-the-copy-status

干杯,克拉斯 [微软]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2019-06-25
    • 2020-03-27
    • 2021-09-24
    • 2021-10-09
    • 2020-01-12
    相关资源
    最近更新 更多