【问题标题】:How to clone blob container and contents如何克隆 blob 容器和内容
【发布时间】:2017-02-21 10:36:24
【问题描述】:

总结
我已经获得了对一个相当古老的网站的支持,该网站在 Azure 中存储了一堆 blob。我想做的是将我的所有 blob 从实时环境复制到测试环境,这样我就可以在不影响用户的情况下使用它们。

架构
该网站是 VB 网络表单和 MVC 的混合体,与 Azure blob 服务(例如https://x.blob.core.windows.net/LiveBlobs)进行通信。

测试站点镜像实时设置,但它指向同一存储帐户中的不同 blob 容器(例如 https://x.blob.core.windows.net/TestBlobs

问题

  • 我可以在不下载的情况下将所有 blob 从 live 复制到 test 他们?他们需要保持相同的名称。
  • 我如何计算出这样做的成本?活的 blob 存储大约 130GB,但应该只是在同一个数据中心内复制数据吧?

我调查过的事情
我花了很长时间寻找答案,但我发现的内容与 copying between storage accountscopying single blobs 有关。

我还找到了AzCopylooks promising,但它看起来会一个一个地复制文件,所以我担心它最终会花费很长时间并且成本很高。

我对 Azure 还很陌生,所以如果这是一个愚蠢的问题或者我错过了一些重要的细节,请原谅我。如果您需要,我很乐意添加任何额外信息。

【问题讨论】:

    标签: azure azure-blob-storage


    【解决方案1】:

    我可以在不下载的情况下将所有 blob 从 live 复制到 test 他们?他们需要保持相同的名称。

    是的,你可以。复制 blob 是一个 asynchronous server-side 操作。您只需告诉 blob 服务要复制的 blob 和目标详细信息,它就会为您完成这项工作。无需先下载再上传到目的地。

    我如何计算出这样做的成本?实时 Blob 存储 大约是 130GB,但它应该只是将数据复制到 同一个数据中心对吧?

    因此,在计算成本时,您需要考虑 3 件事:1) Storage costs、2) transaction costs 和 3) data egress costs

    由于复制的 blob 将存储在某个地方,它们将消耗存储空间,并且您将产生存储成本。

    复制操作将对源 blob 执行一些读取操作,然后对目标 blob 执行写入操作(以创建它们),因此您将不得不产生交易成本。对于每个 blob 副本,您至少可以预期 2 个事务 - 在源上读取和在目标上写入(尽管可以有更多事务)。

    如果目标存储帐户与您的源存储帐户不在同一区域,则您会产生数据出口费用。只要两个存储帐户位于同一区域,就不会发生这种情况。

    您可以使用Azure Storage Pricing Calculator 了解您需要花多少钱。

    我还发现了 AzCopy,它看起来很有希望,但看起来很像 会一个一个地复制文件,所以我担心它最终会占用 时间长,成本高。

    Blob 总是一个接一个地复制。跨存储帐户复制始终是异步服务器端操作,因此您无法真正预测完成复制操作需要多长时间,但根据我的经验,它非常快。如果您想控制何时复制 blob,则需要先下载它们并上传它们。 AzCopy supports this mode as well.

    就成本而言,我认为当您说它会花费很多时,这是一个相对术语。但总的来说,Azure 存储非常便宜,130 GB 并不是很多数据。

    【讨论】:

    • 感谢 Gaurav 的回答,真的很有帮助 :)
    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 2012-04-08
    • 2013-01-24
    • 2021-09-01
    • 2015-02-22
    相关资源
    最近更新 更多