【发布时间】:2021-03-13 05:15:40
【问题描述】:
我在 Azure 中有存储帐户,其中包含文件夹内的文件。我想使用 PowerShell 脚本将 .txt 和 .csv 文件从一个文件夹移动到同一存储帐户容器中的另一个文件夹。
那么,谁能建议我如何做到这一点?
【问题讨论】:
-
移动文件好像没有直接的方法,需要先复制再删除。
标签: azure powershell azure-storage azure-blob-storage
我在 Azure 中有存储帐户,其中包含文件夹内的文件。我想使用 PowerShell 脚本将 .txt 和 .csv 文件从一个文件夹移动到同一存储帐户容器中的另一个文件夹。
那么,谁能建议我如何做到这一点?
【问题讨论】:
标签: azure powershell azure-storage azure-blob-storage
在 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
}
【讨论】:
请在 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。它们必须被复制到目的地并从源中删除。
【讨论】:
为上述建议添加更多信息,最简单的方法是使用Storage Explorer
这个So 线程为您的查询提供了一些想法(PS)。
【讨论】: