加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

将存储数据从一个Azure帐户复制到另一个

发布时间:2020-12-13 21:20:59 所属栏目:Windows 来源:网络整理
导读:我想将一个非常大的存储容器从一个Azure存储帐户复制到另一个(也恰好在另一个订阅中)。 我想就以下选项发表意见: 编写一个可以使用CloudBlob的DownloadToStream()和UploadFromStream()一次连接到存储帐户并复制一个Blob的工具。这似乎是最糟糕的选择,因为
我想将一个非常大的存储容器从一个Azure存储帐户复制到另一个(也恰好在另一个订阅中)。

我想就以下选项发表意见:

>编写一个可以使用CloudBlob的DownloadToStream()和UploadFromStream()一次连接到存储帐户并复制一个Blob的工具。这似乎是最糟糕的选择,因为在传输数据时会产生成本,并且相当慢,因为数据必须归结到运行该工具的机器,然后重新上传回Azure。
>写一个工作人员的角色来做同样的事情 – 理论上讲这应该更快,而且不会产生任何代价。但是,这是更多的工作。
>将工具上传到一个绕过工作角色部署的正在运行的实例,并且在实例被回收/重置之前,祈祷工具完成。
>使用现有工具 – 没有发现任何有趣的东西。

有什么建议的方法?

更新:我刚刚发现,对于2012年7月7日或之后创建的所有存储帐户,终于已经介绍了此功能(仅适用于REST API)

http://msdn.microsoft.com/en-us/library/windowsazure/dd894037.aspx

由于没有直接方法将数据从一个存储帐户迁移到另一个存储帐户,您需要执行像您正在想的那样。如果这是在同一个数据中心内,则选项#2是最好的选择,并且将是最快的(尤其是使用XL实例,给您更多的网络带宽)。

就复杂性而言,在一个worker角色中创建这个代码比在本地应用程序上创建这个代码并不难。只需从您的工作角色的Run()方法运行此代码。

为了使事情更加健壮,您可以列出容器中的Blob,然后将特定的文件移动请求消息放入Azure队列中(并通过每个消息放置多个对象名称进行优化)。然后使用工作者角色线程从队列中读取并处理对象。即使你的角色被回收,最糟糕的是你会重新处理一个消息。为了提高性能,您可以扩展到多个worker角色实例。传输完成后,您只需拆卸部署。

更新 – 2012年6月12日,Windows Azure Storage API已更新,现在允许跨帐户blob副本。详见this blog post。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读