将文件从Azure存储移动到本地目录

时间:2017-05-31 19:36:43

标签: azure-storage azure-files

我想将文件共享中的所有文件移动到azure上。我现在可以通过以下方式来实现:

  1. 使用" net"命令连接到网络驱动器并为其分配驱动器号
  2. 然后是一个使用"移动"的bat文件。命令如move g:\files\* c:\files然后移动每小时运行的文件以检查是否有文件并使用Windows任务调度程序移动它们。
  3. 但我不想这样使用,因为:

    1. 如果机器需要重新启动,则驱动器将断开连接,因此由于有人必须重新安装驱动器,因此该过程不会保持自动化
    2. "移动"命令不移动文件夹,只移动文件。
    3. 有更好的方法来管理吗?我们不想安装像AzCopy这样的工具,但使用Powershell是可行的。

2 个答案:

答案 0 :(得分:0)

根据您的描述,我建议您可以通过以下方式进行:

1.在PowerShell中调用Azcopy。

您可以先安装Azcopy,然后从link下载最新版本。 Azcopy支持将目录上载到Azure文件共享。您可以使用以下命令。

AzCopy /Source:C:\myfolder /Dest:https://myaccount.file.core.windows.net/myfileshare/ /DestKey:key /S

然后您可以编写一个bat脚本来调用Azcopy,默认情况下Azure安装目录为C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy

cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
&.\AzCopy.exe /Source:C:\myfolder /Dest:https://myaccount.file.core.windows.net/myfileshare/ /DestKey:key /S
  1. 使用PowerShell脚本,您可以使用此link。脚本用于ASM模式,您应该更改一些命令。
  2. 根据我的经验,使用Azcopy更容易,更简单。

答案 1 :(得分:0)

使用以下方法解决了该问题:

  1. 使用net use <drive_letter> /delete命令将任何现有的映射驱动器删除到我们正在使用的驱动器号。这样做是为了确保自上次运行脚本以来驱动器已分离
  2. 使用net use命令
  3. 再次映射驱动器
  4. 使用robocopy
  5. 复制所有文件
  6. 之后使用del命令
  7. 删除所有文件
  8. 现在使用net use <drive_letter> /delete命令
  9. 断开驱动器