Windows Azure: Cómo crear un subdirectorio en un contenedor de blob
-
26-09-2019 - |
Pregunta
Como 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á
Ahora, cómo crear un subdirectorio
Para que pueda almacenar archivos
http://veda.blob.core.windows.net/ documento / carpeta / 1.txt
Solución
Para añadir a lo que dijo Egon, sólo tiene que crear su burbuja llamada "carpeta / 1.txt", y funcionará. No es necesario crear un directorio.
Otros consejos
En realidad, hay sólo una única capa de recipientes. Prácticamente puede crear un "sistema de archivos" como el almacenamiento en capas, pero en realidad todo lo que estará en la capa 1, el contenedor en el que se encuentra.
Para crear un "sistema de archivos" virtual como el almacenamiento, puede tener nombres blob que contienen una '/' para que pueda hacer lo que quiera con la forma en que almacena. Además, la gran cosa es que se puede buscar una burbuja en un nivel virtual, dando una cadena parcial, hasta un '/'.
Estas 2 cosas, la adición de un '/' a un camino y una cadena parcial para la búsqueda, juntos crean un "sistema de archivos" de almacenamiento virtual.
Hay un comentario de @ afr0 preguntando cómo filtro en carpetas ..
Hay dos maneras utilizando el GetDirectoryReference
o de bucle a través de un contenedores manchas y 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 por más cobertura a fondo: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori
Si utiliza Microsoft Azure Storage Explorador , hay un botón de "Nueva carpeta", que le permite crear una carpeta en un recipiente. Esto es realmente una carpeta virtual:
Como @Egon se mencionó anteriormente, no hay gestión de carpetas reales en el almacenamiento BLOB.
Se puede lograr algunas de las características de un sistema de archivos con '/' en el nombre del archivo, pero esto tiene muchas limitaciones (por ejemplo, ¿qué pasaría si necesita cambiar el nombre de una "carpeta"?).
Como regla general, me gustaría mantener mis archivos lo más plana posible en un recipiente, y tienen mi solicitud gestionar cualquier estructura Quiero exponer a los usuarios finales (por ejemplo, administrar una carpeta anidada estructura en mi base de datos , tener un registro para cada archivo, haciendo referencia al BLOB utilizando contenedor nombre y el nombre de archivo).
No se necesita crear subdirectorio. Basta con crear envase burbuja y el nombre de archivo de uso como la variable nombre de la siguiente código:
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
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
Got problema similar al intentar Azure muestra primera aplicación sin servidor-.
Aquí está la información de cómo he resuelto mediante la eliminación de \ en la parte delantera de $ web.
Nota: $ contenedor web se crea automáticamente, mientras que permitirá sitio web estático. Nunca visto en cualquier lugar $ contenedor raíz.
//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