使用PowerShell代码将Blob内容获取到本地

时间:2020-03-20 06:21:24

标签: azure powershell azure-storage-blobs

用于将Blob内容获取到本地的PowerShell代码。

以下方案的说明-

我已经编写了有关如何将Blob文件夹级别下载到本地及其工作方式的代码。 但是,我的主要重点如下,这向我建议了如何实现这一目标。 存储帐户具有容器--folder1,2etc.。 其中的folder1将具有dir1、2等, 现在我想使用PS从文件夹1中获取特定dir1的内容。

下面已在文件夹级别上运行的代码供参考-指导我进入下一个级别。

Connect-AzAccount -Subscription "XXXX"

$container_name = 'A/B/C' 
$destination_path = "C:\Users\Anirudh\Documents\upload\"  
$storage_account = New-AzStorageContext -StorageAccountKey "XXXXX" -StorageAccountName "XXXXX"
$blobs = Get-AzStorageBlob -Container $container_name -Context $storage_account  
foreach($blob in $blobs) {  
    New-Item -ItemType Directory -Force -Path $destination_path  
    Get-AzStorageBlobContent -Container $container_name -Blob $blob.Name -Destination $destination_path -Context $storage_account  
} 

谢谢。

1 个答案:

答案 0 :(得分:1)

如果要从Blob容器中特定子文件夹下载Blob,则需要在Get-AzStorageBlob Cmdlet的-Prefix参数中指定该子文件夹的路径。

这是我编写的示例代码,该示例代码从开发存储帐户中A/B/C blob容器的test文件夹中下载blob。

$container_name = "test" 
$destination_path = "D:\temp\"  
$storage_account = New-AzStorageContext -ConnectionString "UseDevelopmentStorage=true"
$path = "A/B/C" # This is the path of the sub folder inside the blob container.
$blobs = Get-AzStorageBlob -Container $container_name -Prefix $path -Context $storage_account  
foreach($blob in $blobs) {  
    New-Item -ItemType Directory -Force -Path $destination_path  
    Get-AzStorageBlobContent -Container $container_name -Blob $blob.Name -Destination $destination_path -Context $storage_account  
}