Cómo crear un subcontenedor en la ubicación de almacenamiento de Azure


Cómo crear un subcontenedor en la ubicación de almacenamiento de Azure.

Por Favor háganoslo saber

Author: David Makogon, 2010-07-06

4 answers

Windows Azure no proporciona el concepto de jerárquica contenedores, pero no proporciona un mecanismo para atravesar la jerarquía de la convención y de la API. Todos los contenedores se almacenan al mismo nivel. Puede obtener la funcionalidad de simliar mediante el uso de convenciones de nomenclatura para los nombres de sus blobs.

Por ejemplo, puede crear un contenedor llamado "content" y crear blobs con los siguientes nombres en ese contenedor:

content/blue/images/logo.jpg
content/blue/images/icon-start.jpg
content/blue/images/icon-stop.jpg

content/red/images/logo.jpg
content/red/images/icon-start.jpg
content/red/images/icon-stop.jpg

Tenga en cuenta que estos blobs son una lista plana contra su contenedor "contenido". Dicho esto, el uso de la " / " como un delimitador convencional, le proporciona la funcionalidad para atravesar estos de una manera hereditaria.

protected IEnumerable<IListBlobItem> 
          GetDirectoryList(string directoryName, string subDirectoryName)
{
    CloudStorageAccount account =
        CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
    CloudBlobClient client = 
        account.CreateCloudBlobClient();
    CloudBlobDirectory directory = 
        client.GetBlobDirectoryReference(directoryName); 
    CloudBlobDirectory subDirectory = 
        directory.GetSubdirectory(subDirectoryName); 

    return subDirectory.ListBlobs();
}

Entonces puede llamar a esto de la siguiente manera:

GetDirectoryList("content/blue", "images")

Nota el uso de GetBlobDirectoryReference y GetSubDirectory los métodos y el CloudBlobDirectory en lugar del tipo de CloudBlobContainer. Estos proporcionan la funcionalidad transversal que probablemente esté buscando.

Esto debería ayudarte a empezar. Hazme saber si esto no responde a tu pregunta:

[Gracias a Neil Mackenzie por su inspiración]

 95
Author: tobint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-24 15:23:55

Se refiere al almacenamiento de blobs? Si es así, la jerarquía es simplemente StorageAccount / Container / BlobName. No hay contenedores anidados.

Dicho esto, puede usar barras en su nombre de blob para simular contenedores anidados en el URI. Vea este artículo sobre MSDN para detalles de nombres.

 8
Author: David Makogon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-06 17:16:23

Agreree con tobint respuesta y quiero añadir algo esta situación porque también Necesito de la misma manera cargar el html de mis juegos en Azure Storage con create this directories:

  • Juegos \ Beautyshop \ index.html
  • Juegos\Beautyshop\assets\apple.png
  • Juegos\Beautyshop\activos\aromas.png
  • Juegos\Beautyshop\customfont.css
  • Juegos\Beautyshop\jquery.js

Así que después de sus recomendaciones traté de cargar mi contenido con la herramienta que es Azure Explorador de almacenamiento y puede descargar la herramienta y el código fuente con esta url: Azure Storage Explorer

En primer lugar, traté de cargar a través de la herramienta, pero no permite la carga jerárquica de directorios porque no necesita : Cómo crear un subdirectorio en un contenedor de blob

Finalmente, depuro el código fuente de Azure Storage Explorer y edité el método Background_UploadBlobs y el campo UploadFileList en StorageAccountViewModel.archivo CS. Puedes editarlo lo que quieras querer.Puede que haya cometido errores de ortografía: / Lo siento mucho, pero eso es solo mi recomendación.

 5
Author: Serkan Yılmaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:09

Código de muestra

string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
 -1
Author: ABB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-08 07:02:47