Powershell:将文件从Azure文件共享复制到Blob存储帐户

时间:2020-11-10 10:26:07

标签: azure powershell copy azure-storage-blobs

我可以使用 AzCopy 将某些文件从Azure File Share复制到Blob存储帐户。 但是,由于此代码需要在自动化运行手册中运行,因此我需要另一个解决方案。

我正在尝试使用 Start-AzStorageBlobCopy

$sourcePathWithSasToken = $AzSourceFileShareDirectory.CloudFileDirectory.Uri.AbsoluteUri + $SourceStorageAccountSasToken
$targetSaContextWithSasToken = New-AzStorageContext -StorageAccountName $targetSaName -SasToken $TargetStorageAccountSasToken

Start-AzStorageBlobCopy `
  -Context $SourceStorageAccountContext `
  -AbsoluteUri $sourcePathWithSasToken `
  -DestContext $targetSaContextWithSasToken `
  -DestContainer $targetContainerName `
  -DestBlob $fileName

但是,我得到了:

警告:忽略不匹配的源存储上下文。源uri是https://SOURCEaccountname.file.core.windows.net/ccbifilesyncshare1/?令牌,终点是https://SOURCEaccountname.blob.core.windows.net/

还是这不可能? 根据Microsoft文档,从blob到文件的另一种方法应该可行。但是,我真的找不到文件共享到Blob的示例。

如果我是对的,则 Start-AzStorageFileCopy 绝对不能执行此操作。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,突然间,我的第n次尝试成功了!

$targetSaContextWithSasToken = New-AzStorageContext -StorageAccountName $targetSaName -SasToken $TargetStorageAccountSasToken
$srcFilePath = $shareFolder + "/" + $fileName

Start-AzStorageBlobCopy `
  -Context $SourceStorageAccountContext `
  -SrcShareName $AzSourceFileShareName `
  -SrcFilePath $srcFilePath `
  -DestContext $targetSaContextWithSasToken `
  -DestContainer $targetContainerName `
  -DestBlob $fileName

我删除了绝对URI,并添加了共享名和文件路径。

我以前尝试过这种方法,但是使用了各种“错误的”文件路径。因此,它要求: 文件夹/文件名。