Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 用于将blob内容获取到本地的PowerShell代码_Azure_Powershell_Azure Storage Blobs - Fatal编程技术网

Azure 用于将blob内容获取到本地的PowerShell代码

Azure 用于将blob内容获取到本地的PowerShell代码,azure,powershell,azure-storage-blobs,Azure,Powershell,Azure Storage Blobs,用于将blob内容获取到本地的PowerShell代码 对以下情况的解释- 我已经编写了关于如何将blob文件夹级别下载到本地及其工作区的代码。 但我的主要关注点如下,请告诉我如何实现这一目标。 存储帐户具有容器--folder1,2etc。。 里面的文件夹1将有dir1,2等。。, 现在我想使用PS从文件夹1中获取特定dir1的内容 下面是文件夹级别上已经运行的代码,仅供参考-指导我下一个级别 Connect-AzAccount -Subscription "XXXX" $container

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

对以下情况的解释-

我已经编写了关于如何将blob文件夹级别下载到本地及其工作区的代码。 但我的主要关注点如下,请告诉我如何实现这一目标。 存储帐户具有容器--folder1,2etc。。 里面的文件夹1将有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  
} 

谢谢。

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

下面是我编写的示例代码,它从开发存储帐户的
test
blob容器中的
A/B/C
文件夹下载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  
} 

是的,非常感谢我刚刚看到了你的代码,我非常高兴让我尝试一下,如果我有疑问,我会尽快回复你…@Gaurav Mantri-非常感谢你一直在测试100%工作的代码。我可以分享一下关于路径如何参数化的想法。你能解释一下你所说的
路径可以参数化是什么意思吗?
?好的,我可以在这里简要介绍一下场景,这样你就可以分享PS中的任何代码了。$path现在正在寻找特定的子文件夹级别,而不是azure blob内容,很好,但在某种程度上相同$path=A/B/C直到C它将保持不变,但在C子文件夹之后,它将查找内容的动态下载/参数化,在C之后,它将有一个带有“每日日期”的文件夹,其中只能有一个子文件夹。现在这个-直到C它应该保持不变,然后PS代码应该能够加载任何日期子文件夹值,此后。。。希望你明白了。过去的事情还是我自己解决的。任何人都可以建议,如何获取日期并将其减去PS代码中的前一个日期将当前日期分配给一个变量。我当前的代码不允许我这样做$path=“A/B/C”(Get Date).AddDays(-1).ToString(“yyyy-mm-dd”)Get Date-Format“dddd-mm/dd/yyyy HH:mm K”$blobs=Get-AzStorageBlob-Container$Container\u name-Prefix$path$Date-Context$storage\u帐户快速帮助对我帮助很大。