用于从 blob 存储容器中的特定文件夹下载文件的 PowerShell 脚本

时间:2021-07-14 00:40:27

标签: powershell azure-blob-storage

我正在编写一个 Power Shell 脚本来从 azure blob 存储容器下载文件。文件位于容器的文件夹中。 Blob 容器结构看起来像 A>B>C.csv(其中 A 是我的容器)。我只想将 C.csv 下载到我的本地文件夹。 我写的脚本如下。

    $AccountName = "X"
    $ContainerName = "A"
    $Key="dcg"
    $Context= New-AzureStorageContext -StorageAccountName $AccountName -StorageAccountKey $Key
    $Files=Get-AzureStorageBlob -Container $ContainerName  -Context $Context -prefix "A/B"| 
     Where-Object {($_.ContentType -eq "application/octet-stream")}
    $DestinationPath = "D:\localfolder"
    $files |Get-AzureStorageBlobContent -Destination $DestinationPath -Context $Context

但是这个脚本将整个文件夹结构复制到我的本地文件夹。所以我的本地文件夹包含 LocalFolder>A>B>C.csv,但我只需要下载 C.csv(LocalFolder>C.csv)。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我看不到使用 Power Shell 脚本下载没有文件夹结构的 blob 的方法。 我尝试了以下脚本并获得相同的输出

$AccountName = "*******"
$ContainerName = "*******"
$BlobName = "*******" 
$localTargetDirectory ="*******"
$Key="*******"
$ctx= New-AzureStorageContext -StorageAccountName $AccountName -StorageAccountKey $Key
Get-AzureStorageBlobContent -Blob $BlobName -Container $ContainerName `
    -Destination $localTargetDirectory -Context $ctx

我们拥有的其他选项如 azure storage explore 和 AZ copy 可直接下载文件而无需文件夹结构。 这是参考文档的 AZ Copy Storage Explorer