azure 如何在存储帐户容器中将文件从一个文件夹移动到另一个文件夹

tcomlyy6  于 2023-01-05  发布在  其他
关注(0)|答案(4)|浏览(203)

我在Azure中具有存储帐户,该帐户包含文件夹内的文件。我希望使用PowerShell脚本将.txt和.csv文件从一个文件夹移动到同一存储帐户容器中的另一个文件夹。
有谁能给我点建议吗?

m3eecexj

m3eecexj1#

在Swishonary的回复中添加完整的步骤:

$context = New-AzureStorageContext -StorageAccountName {accountName} -StorageAccountKey {Enter your storage account key here}
$Blobs = Get-AzStorageBlob -Container "SourceContainer" -Blob SourceFolder/*.csv -Context $context
foreach ($blob in $Blobs) {
    $blob.Name

    # Copy to DestinationFolder
    Start-AzStorageBlobCopy -SrcBlob "SourceFolder/SourceFile" -SrcContainer "<SourceContainer>" -DestContainer "<DestinationContainer>" -DestBlob "DestinationFolder/DestinationFile"

    # Delete the source blob
    Remove-AzStorageBlob -Container "SourceContainer" -Blob $blob.Name
}
tzxcd3kk

tzxcd3kk2#

请在Powershell中使用azcopy来实现此操作。

azcopy login
azcopy copy 'https://<SourceStorageaccount>.blob.core.windows.net/<SourceContainer>/<SourceFile>' 'https://<DestinationStorageaccount>.blob.core.windows.net/<DestinationContainer>/<DestinationFile>'

AzCopy命令行实用工具为Azure存储提供高性能、可编写脚本的数据传输。你可以使用AzCopy在Blob存储和Azure文件之间传输数据。
或者,我认为这也可以用于:

Start-AzStorageBlobCopy -SrcBlob "SourceFolder/SourceFile" -SrcContainer "<SourceContainer>" -DestContainer "<DestinationContainer>" -DestBlob "DestinationFolder/DestinationFile"

目前,Az.Storage模块中似乎没有Powershell cmdlet来移动文件。必须将文件复制到目标并从源中删除。

hk8txs48

hk8txs483#

在上述建议的基础上添加更多信息,最简单的方法是使用Storage Explorer
这个So线程为您的查询提供了一些想法(PS)。

ycl3bljg

ycl3bljg4#

请注意,复制是异步的,因此在删除源之前,请确保blob位于目标位置。据说同一容器内的复制是“即时的”,更像是移动操作(不存在,因此也不需要在API中)

相关问题