Windows Azure: Comment créer sous-répertoire dans un conteneur de blob
-
26-09-2019 - |
Question
Comment créer un sous-répertoire dans un conteneur blob
par exemple,
dans mon conteneur blob http://veda.blob.core.windows.net/document /
Si je stocke des fichiers, il sera
Maintenant, comment créer un sous-répertoire
Alors que je peux stocker des fichiers
http://veda.blob.core.windows.net/ documents / dossier / 1.txt
La solution
Pour ajouter à ce que Egon dit, il suffit de créer votre blob appelé « dossier / 1.txt », et cela fonctionnera. Pas besoin de créer un répertoire.
Autres conseils
Il est en fait une seule couche de conteneurs. Vous pouvez pratiquement créer un « système de fichiers » comme le stockage en couches, mais en réalité, tout sera en couche 1, le récipient dans lequel il est.
Pour la création d'un « système de fichiers » virtuel comme le stockage, vous pouvez avoir des noms de blob qui contiennent un « / » afin que vous puissiez faire tout ce que vous aimez 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, ainsi que de créer un stockage « système de fichiers » virtuel.
Il y a un commentaire par @ afr0 demandant comment filtrer sur 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 ce pour plus d'une couverture approfondie: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori
Si vous utilisez Microsoft Azure Storage Explorateur, il y a un bouton « Nouveau dossier » qui vous permet de créer un dossier dans un récipient. Ceci est en fait un dossier virtuel:
Comme @Egon mentionné ci-dessus, il n'y a pas une véritable gestion des dossiers dans le stockage BLOB.
Vous pouvez obtenir des caractéristiques d'un système de fichiers en utilisant « / » dans le nom du fichier, mais cela a de nombreuses limites (par exemple, ce qui se passe si vous avez besoin de renommer un « dossier »?).
En règle générale, je garderais mes fichiers aussi plat que possible dans un récipient, et que ma demande soit gérer quelle que soit la structure que je veux exposer aux utilisateurs finaux (par exemple gérer un dossier imbriqué la structure dans ma base de données , un dossier pour chaque fichier, faisant référence au blob à l'aide conteneur nom et nom de fichier).
Vous n'avez pas besoin de créer sous-répertoire. Il suffit de créer conteneur blob et le nom du fichier à la variable comme nom comme ci-dessous le code:
string filename = "document/tech/user-guide.pdf";
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConnectionString);
CloudBlockBlob blob = cloudBlobContainer.GetBlockBlobReference(filename);
blob.StreamWriteSizeInBytes = 20 * 1024;
blob.UploadFromStream(fileStream); // fileStream is System.IO.Stream
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
Got problème similaire en essayant Azure Sample première Serverless-app .
Voici les informations de la façon dont je résolus en supprimant \ à l'avant de $ web.
Remarque: conteneur Web $ a été créé automatiquement en activer site Web statique. Jamais vu $ conteneur racine partout.
//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