1

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

AzCopy.exe /Source: https://teststorage.table.core ... /Dest: http://127.0.0.1:10002/devstoreaccount1/myTable /sourceKey:VUGXYOrFUG8+f7KYt5etrjB4B/3QbwWiJgLZ6wXCdx6p+bV/GTfCLJshpWQvFZNChXtPbR2llqvdestkeyXIB9qucSJQ== :Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVERCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== /destType:table /S

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

谁能告诉我命令的问题在哪里?

4

3 回答 3

9

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

顺便说一句,/S 是仅可用于 blob/文件复制的选项,您不能将其指定为表复制。

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

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

于 2016-03-02T03:01:40.733 回答
1

如果你还在寻找这个问题的解决方案,请查看我在 NuGet AzureTableUtilities上发布的一个包

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

我还创建了一个参考命令行代码库并将其放在GitHub 上,它允许从命令行或 Docker 容器执行它。

如果这与您想要的不完全匹配,请告诉我,我会看看是否可以增强功能。

于 2020-06-11T22:00:45.093 回答
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();

于 2021-07-13T10:50:28.827 回答