Windows Azure: comment créer un sous-répertoire dans un conteneur blob

comment créer un sous-répertoire dans un conteneur blob

par exemple,

dans mon blob container http://veda.blob.core.windows.net/document /

Si je stocker 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 /

pour que je puisse stocker des fichiers

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

56
demandé sur veda 2010-04-12 02:52:34

8 réponses

pour ajouter à ce que Egon a dit, il suffit de créer votre blob appelé" folder/1.txt", et ça va marcher. Pas besoin de créer un répertoire.

84
répondu smarx 2010-04-12 18:34:08

il n'y a en fait qu'une seule couche de conteneurs. Vous pouvez virtuellement créer un" système de fichiers " comme stockage stratifié, mais en réalité tout sera en 1 couche, le conteneur dans lequel il est.

pour créer un" système de fichiers " virtuel comme le stockage, vous pouvez avoir des noms de blob qui contiennent un '/' de sorte que vous pouvez faire ce que vous voulez avec la façon dont vous stockez. Aussi, la grande chose est que vous pouvez rechercher d'une goutte à l'virtuelles, en donnant une chaîne partielle, jusqu'à un.'/'

ces deux choses, en ajoutant un '/' à un chemin et une chaîne partielle pour la recherche, créent ensemble un" système de fichiers " virtuel de stockage.

28
répondu Egon 2015-05-25 00:53:38

il y a un commentaire de @afr0 demandant comment filtrer sur les dossiers..

il y a deux façons d'utiliser le GetDirectoryReference ou en boucle à travers un conteneur blobs et de vérifier le 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);
    }
}

lisez ceci pour une couverture plus détaillée: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori

19
répondu AntonB 2017-02-13 19:51:12

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

enter image description here

7
répondu Pritam 2017-11-08 06:32:29

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. Il s'agit en fait d'un dossier virtuel:

enter image description here

2
répondu Setyo N 2017-05-15 09:40:28

comme @Egon mentionné ci-dessus, il n'y a pas de véritable gestion des dossiers dans le stockage BLOB.

vous pouvez obtenir certaines fonctionnalités d'un système de fichiers en utilisant '/' dans le nom de fichier, mais cela a de nombreuses limites (par exemple, que se passe-t-il si vous avez besoin de renommer un "dossier"?).

en règle générale, je garderais mes fichiers aussi plats que possible dans un conteneur, et je demanderais à mon application de gérer n'importe quelle structure que je veux exposer à la fin les utilisateurs (par exemple gérer une structure de dossier imbriquée dans ma base de données , ont un enregistrement pour chaque fichier, en référençant le BLOB en utilisant conteneur-nom et file-nom).

1
répondu Assaf S. 2018-06-06 08:49:06

Voici comment je le fais dans 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
0
répondu Cees Timmerman 2016-02-19 14:53:25

Got problème similaire, tout en essayant d'Azur Échantillon premier-sans serveur-app .

Voici l'info de comment j'ai résolu en supprimant \ devant $web.

Note: $ le conteneur web a été créé automatiquement tout en activant le site Web statique. Jamais vu $conteneur racine de n'importe où.

//getting Invalid URI error while following tutorial as-is
az storage blob upload-batch -s . -d $web --account-name firststgaccount01

//Remove "\" @destination param
az storage blob upload-batch -s . -d $web --account-name firststgaccount01
0
répondu Nara 2018-07-01 04:33:39