2015-12-28 1 views
2

J'ai une part de stockage d'azur appelé myshare avec une structure comme celle-ci:Get-AzureStorageFile pas la liste du contenu du répertoire moins que la pipe je à même cmdlet

/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 

Lorsque je tente de lister les fichiers en utilisant cette commande

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

Je viens d'obtenir un résultat indiquant le répertoire lui-même:

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

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

a Ding un suivi/n'aide pas. Je suis certain que cela sert à lister les fichiers sous ce chemin (comme j'ai des étapes semi-automatisées documentées incluant cette commande), mais pas plus. Peut-être que c'est un changement dans v1.0?

Le documentation pour le chemin dit param

Indique le chemin d'un dossier. Cette cmdlet répertorie les fichiers sous le dossier que ce paramètre spécifie.

Et l'exemple donné suggère que cela devrait fonctionner. La même chose s'applique si j'essaie d'obtenir une liste de seulement le répertoire 3.3.0.22: Je viens de donner la sortie listant le répertoire 3.3.0.22 lui-même.

J'ai trouvé si je redirige la sortie vers Get-AzureStorageFile (c'est-à-dire la même cmdlet à nouveau) cela donne ce que je m'attendais. Mais cela semble faux?

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 

Je suis déplacé des postes de travail depuis que j'utilisé ces commandes il est donc possible qu'il ya quelque chose qui affecte l'environnement ce ... mais je ne sais pas ce que cela serait.

Exécution (Get-Module -Name Azure).Version rapports Version 1.0.2.-1

Exécution get-azurestoragefile -sharename 'myshare' -Path '3.3.0.22/ReportTemplates' | select-object * donne la sortie ci-dessous ... qui se sent comme il est le mauvais type de retour:

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

Ne pas avoir Azure mais en lisant les documents qu'il a à faire avec le jeu de paramètres que vous utilisez. Puisque vous spécifiez '-sharename' qui dit dans docs: _Spécifie le nom du partage de fichiers. Cette applet de commande obtient un __file ou un répertoire__ du partage de fichiers spécifié par ce paramètre. Remarquez que ce n'est pas pluriel. C'est pourquoi votre deuxième pipe fait ce qu'elle fait. Vous n'utilisez plus ce jeu de paramètres et le chemin fonctionne comme prévu. – Matt

+0

Merci mais non, cela ressemble à un petit bug de documentation. – Rory

+0

En effet. Il m'a égaré – Matt

Répondre

4

Il y a un bug dans la version actuelle du Azure Powershell cmdlets. "Get-AzureStorageFile -Share $ s -Path folderpath" doit définitivement renvoyer les fichiers dans le dossier folderpath. J'ai demandé à Gaurav Mantri à ce sujet, et il a regardé dans le code, et a constaté que l'applet de commande fait une demande "Head" pour obtenir les propriétés du répertoire, et ne pas aller chercher les fichiers.

J'ai signalé cela sur github, donc j'espère que ce sera corrigé bientôt.

+0

Cela répond alors. – Matt

+0

Merci Robin. Pour les autres intéressés, le problème est ici: https://github.com/Azure/azure-powershell/issues/1543 – Rory

+1

Oui, je sais. J'en avais vraiment besoin pour travailler; J'espère qu'ils vont le réparer dès que possible. –