当我使用Get-AzureStorageBlobContent下载Azure blob时,下载还会根据blob的虚拟路径创建目录。有没有办法不创建目录?
例如:
我的blob:container / a / b / c.jpg
$blob = Get-AzureStorageBlob -Blob $BlobName -Container $ContainerName -Context $ctx -ErrorAction Stop
$blob | Get-AzureStorageBlobContent -Destination "."
结果是:
./ A / B / C.JPG
沿着blob的虚拟路径创建文件夹。
我只想在我当前的目录“。”下有一个“c.jpg”文件。 这可能吗?
答案 0 :(得分:0)
沿着blob的虚拟路径创建文件夹。
正如您所说,使用Get-AzureStorageBlobContent cmdlet将具有虚拟目录结构的Blob下载到本地计算机,这将在本地计算机上创建相同的文件夹结构。
$StorageAccountName = "accountname"
$StorageAccountKey = "accesskey"
$ContainerName = "imagecontainer"
$BlobName = "a/b/c.jpg"
$ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
$blob = Get-AzureStorageBlob -Blob $BlobName -Container $ContainerName -Context $ctx -ErrorAction Stop
$blob | Get-AzureStorageBlobContent -Destination '.'
似乎Get-AzureStorageBlob和Get-AzureStorageBlobContent cmdlet不允许我们将名为“a / b / c.jpg”的blob下载并保存为“c.jpg”到本地目标目录。
作为一种变通方法,您可以使用Start-AzureStorageBlobCopy cmdlet将blob复制到新blob,然后下载新blob。
Start-AzureStorageBlobCopy -SrcBlob $BlobName -DestContainer $ContainerName -SrcContainer $ContainerName -Context $ctx -DestBlob 'c.jpg'