我有一个名为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
答案 0 :(得分:4)
当前版本的Azure Powershell cmdlet中存在一个错误。 “Get-AzureStorageFile -Share $ s -Path folderpath”肯定会返回文件夹路径中的文件。我向Gaurav Mantri询问了这个问题,他查看了代码,发现cmdlet正在发出“Head”请求来获取目录的属性,而不是获取文件。
我已经在github上报告了这一点,所以希望很快就能解决。