我可以使用 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 绝对不能执行此操作。
提前谢谢!
答案 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,并添加了共享名和文件路径。
我以前尝试过这种方法,但是使用了各种“错误的”文件路径。因此,它要求: 文件夹/文件名。