这听起来像是最简单的任务,我要做的就是在Azure文件存储的“共享”下列出子目录的内容,我设法获得了“ CloudFileDirectory ”对象,但是,努力读取其内容。
我只能在PowerShell中编写此解决方案,因此请使用称为“ AzureRM”的PS模块,如下所示:
# Install AzureRM module & check if installed:
Install-Module -Name "AzureRM"
Get-Module -Name AzureRM -List | select Name,Version
# Import module in session:
Import-Module AzureRM
# Connect/sign-on to Azure account (interactive login):
Connect-AzureRmAccount
# Get reference to Storage account:
$storageAcct = Get-AzureRmStorageAccount -ResourceGroupName "myRSG" -AccountName "myCloudStorage"
#Get directory object:
$objDir = Get-AzureStorageFile -Context $storageAcct.Context -ShareName "myShare" -Path "myFolder1"
在这里,我坚持使用这个( $ objDir )对象,该对象基本上是 WindowsAzure.Storage.File.CloudFileDirectory 对象,但不像通常的目录对象那样工作,因为它似乎不包含Collection(请参见下面的输出):
$objDir.GetType().FullName #-> "WindowsAzure.Storage.File.CloudFileDirectory" object
$objDir | % {$_.GetType().FullName} #-> "WindowsAzure.Storage.File.CloudFileDirectory" object
基本上,我需要读取此子文件夹中的文件名。我将不胜感激。 TIA。
答案 0 :(得分:1)
(根据Gaurav的评论)附加了 | Get-AzureStorageFile 解决了该问题并返回了预期的输出,即,我现在正在获取一个集合/数组( System.Object [] ),我对其进行迭代以获取单个对象文件名及其大小,这是我现在得到的代码+输出和对象类型:
#Get directory object:
$objDir = Get-AzureStorageFile -Context $storageAcct.Context -ShareName "myShare" -Path "myFolder1" | Get-AzureStorageFile
$objDir.GetType().FullName #-> "System.Object[]" object
$objDir | % {$_.GetType().FullName} #-> "WindowsAzure.Storage.File.CloudFile / CloudDirectory" objects
$objDir | % {$_} | select Name,StreamMinimumReadSizeInBytes
Name StreamMinimumReadSizeInBytes
---- ----------------------------
file.txt 4194304
file1.txt 4194304
foo.txt 4194304