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



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

我正在尝试使用启动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/?token,终点是https://SOURCEaccountname.blob.core.windows.net/.

或者这是不可能的?根据微软的文档,从blob到文件的另一种方式应该是可能的。然而,我真的找不到一个文件共享到Blob的例子。

如果我是正确的,Start-AzStorageFileCopy肯定无法执行此操作。

提前感谢!!

好吧,突然间,我的第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,并添加了共享名和文件路径。

我以前尝试过这个,但使用了各种";错误的";文件路径。因此,它需要:文件夹/文件名。

最新更新