2010-04-11 9 views
48

Cómo crear un subdirectorio en un envase burbujaWindows Azure: Cómo crear un subdirectorio en un envase burbuja

por ejemplo,

en mi contenedor de blob http://veda.blob.core.windows.net/document/

Si puedo almacenar algunos archivos será

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

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

Ahora, cómo crear un subdirectorio

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

Para que pueda almacenar archivos

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

Respuesta

73

Para agregar a lo que Egon dijo, simplemente crea tu blob llamado "carpeta/1.txt", y funcionará. No es necesario crear un directorio.

+2

cómo filtra u obtiene todos estos archivos de "carpeta"? – afr0

+1

lea mi respuesta a continuación @ afr0 – AntonB

+0

Esto no funciona para mí, dice que los contenedores no pueden usar nada más que minúsculas, guiones, números. Lo mismo para los nombres de archivo –

24

En realidad, solo hay una capa de contenedores. Puede crear virtualmente un "sistema de archivos" como almacenamiento en capas, pero en realidad todo estará en 1 capa, el contenedor en el que se encuentra.

Para crear un "sistema de archivos" virtual como el almacenamiento, puede tener nombres de blob que contengan un '/' para que pueda hacer lo que quiera con la forma en que almacena. Además, lo mejor es que puede buscar un blob en un nivel virtual, dando una cadena parcial, hasta un '/'.

Estas 2 cosas, al agregar un '/' a una ruta y una cadena parcial de búsqueda, juntas crean un almacenamiento virtual de "sistema de archivos".

+0

¿Puede compartir C# muestra? blob.El nombre es propiedad de solo lectura, por lo que no podemos crear un blob.Name con "/" – ABB

13

Hay un comentario de @ afr0 preguntando cómo filtrar en las carpetas ..

Hay dos maneras utilizando el GetDirectoryReference o enlace a través de contenedores de notas y funciones de comprobación del tipo. El código siguiente es 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); 
    } 
} 

leer esto para más cobertura a fondo: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori

+1

Esta debería ser la respuesta a partir de la fecha de hoy. +1 – MickyD

0

Así es como lo hago en CoffeeScript en 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 utiliza Microsoft Azure Storage Explorer, hay un botón "Nueva carpeta" que le permite crear una carpeta en un contenedor. Esto es realmente una carpeta virtual:

enter image description here

3

En Azure Portal tenemos la opción de abajo, mientras que la posibilidad de subir archivos:

enter image description here

Cuestiones relacionadas