繁体   English   中英

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

[英]Copy table from azure to local storage using 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 表服务或 AzCopy 都不支持将数据从一个表复制到另一个表。

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

到目前为止,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

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

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

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

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

如果您仍在寻找解决方案。 我已经通过 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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM