Get-AzureStorageFile不列出目录内容,除非我将其管道到相同的cmdlet

时间:2015-12-28 23:47:56

标签: powershell azure azure-powershell

我有一个名为myshare的天蓝色存储共享,其结构如下:

/3.3.0.22/ReportTemplates/File1.rdl
/3.3.0.22/ReportTemplates/File2.rdl
/3.3.0.22/ReportTemplates/File3.rdl
/3.3.0.22/ReportTemplates/File4.rdl

当我尝试使用此命令列出文件时

Get-AzureStorageFile -sharename 'myshare' -Path '3.3.0.22/ReportTemplates'

我只是得到一个列出目录本身的结果:

   Directory: https://<mystorageaccount>.file.core.windows.net/myshare/3.3.0.22

Type                Length Name    
----                ------ ----   
                         1 ReportTemplates   

添加尾随/没有帮助。我确定这用于列出该路径下的文件(因为我已经记录了半自动化步骤,包括此命令),但不多了。也许这是v1.0的变化?

Path param的documentation

  

指定文件夹的路径。此cmdlet列出了该文件下的文件   此参数指定的文件夹。

给出的例子表明它应该有效。如果我尝试获取3.3.0.22目录的列表,同样适用:我只是给出了列出3.3.0.22目录的输出。

我发现如果将输出传递给Get-AzureStorageFile(即再次使用相同的cmdlet),它会给出我期望的结果。但这似乎错了?

get-azurestoragefile -sharename 'myshare' -Path '3.3.0.22/ReportTemplates' | get-azurestoragefile


   Directory: https://<mystorageaccount>.file.core.windows.net/myshare/3.3.0.22/ReportTemplates

Type                Length Name 
----                ------ ----  
                         1 File1.rdl 
                         1 File2.rdl 
                         1 File3.rdl 
                         1 File4.rdl 

自从我上次使用这些命令以来,我已经移动了工作站,所以有可能会有一些环境影响这个...但我不知道那会是什么。

正在运行(Get-Module -Name Azure).Version报告版本1.0.2.-1

运行get-azurestoragefile -sharename 'myshare' -Path '3.3.0.22/ReportTemplates' | select-object *会给出下面的输出...感觉这是错误的类型返回:

ServiceClient : Microsoft.WindowsAzure.Storage.File.CloudFileClient
Uri           : https://<mystorageaccount>.file.core.windows.net/myshare/3.3.0.22/ReportTemplates
StorageUri    : Primary = 'https://<mystorageaccount>.file.core.windows.net/myshare/3.3.0.22/ReportTemplates'; Secondary = ''
Properties    : Microsoft.WindowsAzure.Storage.File.FileDirectoryProperties
Metadata      : {}
Share         : Microsoft.WindowsAzure.Storage.File.CloudFileShare
Parent        : Microsoft.WindowsAzure.Storage.File.CloudFileDirectory
Name          : ReportTemplates

1 个答案:

答案 0 :(得分:4)

当前版本的Azure Powershell cmdlet中存在一个错误。 “Get-AzureStorageFile -Share $ s -Path folderpath”肯定会返回文件夹路径中的文件。我向Gaurav Mantri询问了这个问题,他查看了代码,发现cmdlet正在发出“Head”请求来获取目录的属性,而不是获取文件。

我已经在github上报告了这一点,所以希望很快就能解决。