2012-06-13 22 views
11

Quiero leer un archivo PDF de bytes de almacenamiento azul, para eso tengo una ruta de archivo.Lea el archivo del almacenamiento de blobs de Azure

https://hostedPath/pdf/1001_12_Jun_2012_18_39_05_594.pdf 

¿Es posible leer contenido del almacenamiento de blob al pasar directamente su nombre de ruta? También estoy usando C#.

Respuesta

13

Mientras el blob sea public, puede pasar absolutamente la url de blob. Por ejemplo, puede incrustarlo una imagen o un enlace HTML en:

<a href="https://myaccount.blob.core.windows.net/pdf/1001_12_Jun_2012_18_39_05_594.pdf">click here</a> 

Por defecto, los contenedores son blob privada. Para habilitar el acceso de lectura público, solo tiene que cambiar los permisos del contenedor al crear el contenedor. Por ejemplo:

var blobStorageClient = storageAccount.CreateCloudBlobClient(); 
var container = blobStorageClient.GetContainerReference("pdf"); 
container.CreateIfNotExist(); 

var permissions = container.GetPermissions(); 
permissions.PublicAccess = BlobContainerPublicAccessType.Container; 
container.SetPermissions(permissions); 
+0

Y Consulte también la respuesta de @Sandrino sobre las firmas de acceso compartido, que probablemente encontrará muy útil con contenido específico del cliente vs. contenido público como imágenes, archivos de ayuda, folletos, etc. –

8

Al igual que David explicó, puede acceder a cualquier blob a través de su url, siempre que el contenedor no sea privado.

Si el contenedor es privado, puede hacer que sus archivos sean accesibles a través de la url usando Shared Access Signatures (SAS). Esto le permitirá otorgar a los usuarios el derecho de descargar el archivo (proporcionándoles el SAS, usually appended to the URL) pero limitándolos a tiempo.

Esto es perfecto cuando tiene descargas de pago, por ejemplo, para proteger sus archivos, pero lo que permite que se descarguen durante un tiempo limitado si alguien pagó por ello.

Ahora, en su pregunta indica que está utilizando C#. Si desea descargar el archivo en una aplicación de formularios WPF/Windows/consola, sólo tiene que utilizar el cliente Web para descargar el archivo (si el recipiente es pública o añadir el URL con el SAS):

WebClient myWebClient = new WebClient(); 
myWebClient.DownloadFile("https://myaccount.blob.core.windows.net/pdf/1001_12_Jun_2012_18_39_05_594.pdf", @"D:\Data\myPdfFile.pdf");  
+0

El enlace msdn para SAS ya no funciona – Nikitesh

Cuestiones relacionadas