使用AzCopy将表从azure复制到本地存储

时间:2016-03-01 13:24:10

标签: azure azure-storage azcopy

我正在尝试将myTable从azure复制到本地模拟器

AzCopy.exe /来源:https://teststorage.table.core ... /目的地:http://127.0.0.1:10002/devstoreaccount1/myTable / sourceKey:VUGXYOrFUG8 + f7KYt5etrjB4B / 3QbwWiJgLZ6wXCdx6p + BV / GTfCLJshpWQvFZNChXtPbR2llqvbXIB9qucSJQ == / destkey:Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq / K1SZFPTOtr / KBHBeksoGMGw == / destType:table / S

我有这个错误:命令的语法不正确。 Azure Table服务或AzCopy不支持将数据从一个表复制到另一个表。

有谁能告诉我我的命令出在哪里?

3 个答案:

答案 0 :(得分:7)

到目前为止,AzCopy不支持直接将表复制到表。要解决此问题,您可以运行两个命令,首先将源表导出到本地或blob,然后导回到目标表。

顺便说一句,/ S是一个仅适用于blob /文件复制的选项,你无法为表复制指定它。

  

AzCopy.exe /来源:https://youraccount1.table.core.windows.net/srctable / SourceKey:key1 / Dest:D:\ LocalFolder / Manifest:yourfilename / SplitSize:128

     

AzCopy.exe /来源:D:\ LocalFolder / Dest:http://127.0.0.1:10002/devstoreaccount1/desttable / DestType:Table / DestKey:key2 / Manifest:yourfilename / EntityOperation:InsertOrReplace

答案 1 :(得分:1)

如果您仍在寻找解决此问题的方法,请查看我在NuGet AzureTableUtilities上发布的软件包。

您可以将表复制到文件或blob文件,从文件或blob文件还原表,以及复制到同一帐户或不同帐户上的另一个表。还可以对PartitionKey和Timestamp进行过滤。

我还创建了参考命令行代码库,并将其放在GitHub上,从而可以从命令行或Docker容器执行该代码。

让我知道这是否与您想要的不完全匹配,我将看看是否可以增强功能。

答案 2 :(得分:0)

如果您仍在寻找解决方案。我已经通过 AZCopy 实现了这一点。请检查下面的 C# 代码

  1. 下载并安装 AzCopy
  2. 使用库(使用 System.Diagnostics;)
  3. 写下面的代码

Process process1 = new Process();
process1.StartInfo.FileName = @"" + string.Concat(azCopyExePath, "\\", "AzCopy.exe");
process1.StartInfo.Arguments = " /Source:" + "https://" + storageAccountName +
                        ".table.core.windows.net/" + tableName+ " /SourceKey:" 
                        + storageAccessKey + " /Dest:C:\temp" /Manifest:" + fileName + " /SplitSize:128";
process1.StartInfo.CreateNoWindow = true;
process1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process1.Start();
process1.WaitForExit();
process1.Close();