从网址上传Azure存储blob

时间:2016-03-07 09:51:32

标签: java azure azure-storage azure-storage-blobs data-migration

有办法做到这一点吗?

我在很少的服务器和Amazon s3存储上有大量文件,需要从应用程序(Java / Ruby)上传到Azure

我不想在我的应用服务器上下载这些文件,然后将其上传到Azure blob存储。

我已经检查了Java和Ruby sdk,似乎根据示例没有直接的方法来实现这一点(意味着我必须首先在我的应用服务器上下载这些文件并将其上传到Azure)

更新: 刚刚在Java SDK中发现了 CloudBlockBlob.startCopy()。 试过它,它基本上是我想要的,而不使用像AzCopy这样的第三方工具。

2 个答案:

答案 0 :(得分:1)

正如@EmilyGerner所说,AzCopy是Microsoft的官方工具,而@MatiasQuaranta所说的AzureCopy是GitHub上的第三方工具https://github.com/kpfaulkner/azurecopy

简单的方法是使用AWS Command LineAzCopy将所有文件从S3复制到本地目录到Azure Blob存储。您可以参考我对其他帖子Migrating from Amazon S3 to Azure Storage (Django web app)的回答。但它仅适用于小型数据存储桶。

另一种有效的方法是使用Amazon S3和Azure Blob Storage for Java的SDK进行编程。根据我的经验,Azure SDK API for Java类似于C#,因此您可以尝试引用Azure Blob Storage Getstarted doc for JavaAWS SDK for Java来关注@GauravMantri示例代码,以便用Java重写代码。

答案 1 :(得分:0)

您有几个选项,大多数是许可的,但我认为AzureCopy是您最好的免费替代方案。您可以查看step by step experience on MSDN Blogs

您只需要两种服务的访问密钥,并使用简单的命令:

azurecopy -i https://mybucket.s3-us-west-2.amazonaws.com/ -o https://mystorage.blob.core.windows.net/mycontainer -azurekey %AzureAccountKey% -s3k %AWSAccessKeyID% -s3sk %AWSSecretAccessKeyID% -blobcopy -destblobtype block

您可以将blob从一个容器传递到另一个容器。