2010-04-11 6 views
48

Comment créer un sous-répertoire dans un conteneur blobWindows Azure: Comment créer sous-répertoire dans un conteneur de blob

par exemple,

dans mon récipient blob http://veda.blob.core.windows.net/document/

Si je stocke des fichiers il sera

http://veda.blob.core.windows.net/document/1.txt

http://veda.blob.core.windows.net/document/2.txt

Maintenant, comment créer un sous-répertoire

http://veda.blob.core.windows.net/document/folder/

Alors que je peux stocker des fichiers

http://veda.blob.core.windows.net/document/folder/1.txt

Répondre

73

Pour ajouter à ce qu'a dit Egon, il suffit de créer votre blob appelé "dossier/1.txt", et cela fonctionnera. Pas besoin de créer un répertoire.

+2

comment vous filtrez ou obtenez tous ces fichiers de "dossier"? – afr0

+1

lire ma réponse ci-dessous @ afr0 – AntonB

+0

Cela ne fonctionne pas pour moi, dit conteneurs ne peuvent pas utiliser autre chose que minuscules, tirets, chiffres. Idem pour les noms de fichiers –

24

Il n'y a en réalité qu'une seule couche de conteneurs. Vous pouvez virtuellement créer un "système de fichiers" comme le stockage en couches, mais en réalité, tout sera en 1 couche, le conteneur dans lequel il se trouve. Pour créer un stockage de type "système de fichiers" virtuel, vous pouvez avoir des noms de blob qui contiennent un '/' afin que vous puissiez faire ce que vous voulez avec la façon dont vous stockez. En outre, la grande chose est que vous pouvez rechercher un blob à un niveau virtuel, en donnant une chaîne partielle, jusqu'à un «/».

Ces 2 choses, en ajoutant un «/» à un chemin et une chaîne partielle pour la recherche, créent ensemble un stockage virtuel «système de fichiers».

+0

Pouvez-vous partager échantillon C#? blob.Le nom est en lecture seule propriété donc nous ne sommes pas en mesure de créer un blob.Name avec "/" – ABB

13

Il y a un commentaire par @ afr0 demandant comment filtrer les dossiers ..

Il y a deux façons en utilisant le GetDirectoryReference ou par un looping blobs de conteneurs et de contrôle du type. Le code ci-dessous est en C#

CloudBlobContainer container = blobClient.GetContainerReference("photos"); 

//Method 1. grab a folder reference directly from the container 
CloudBlobDirectory folder = container.GetDirectoryReference("directoryName"); 

//Method 2. Loop over container and grab folders. 
foreach (IListBlobItem item in container.ListBlobs(null, false)) 
{ 
    if (item.GetType() == typeof(CloudBlobDirectory)) 
    { 
     // we know this is a sub directory now 
     CloudBlobDirectory subFolder = (CloudBlobDirectory)item; 

     Console.WriteLine("Directory: {0}", subFolder.Uri); 
    } 
} 

lire ceci pour plus d'une couverture approfondie: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori

+1

Cela devrait être la réponse à la date d'aujourd'hui. +1 – MickyD

0

Voici comment je le fais en CoffeeScript sur Node.JS:

blobService.createBlockBlobFromText 'containerName', (path + '$$$.$$$'), '', (err, result)-> 
    if err 
     console.log 'failed to create path', err 
    else 
     console.log 'created path', path, result 
2

Si vous utilisez Microsoft Azure Storage Explorer, il y a un bouton "Nouveau dossier" qui vous permet de créer un dossier dans un conteneur.Ce est en fait un dossier virtuel:

enter image description here

3

Portal Azure ci-dessous, nous avons l'option lors du téléchargement du fichier:

enter image description here

Questions connexes