从Azure blob存储中读取文件
我想从azure存储中读取一个PDF文件字节,因为我有一个文件路径。
https://hostedPath/pdf/1001_12_Jun_2012_18_39_05_594.pdf
那么可以通过直接传递其路径名来从blob存储中读取内容吗? 我也在使用c#。
只要blob是公共的 ,你就可以绝对传递blob url。 例如,您可以将其嵌入到html图像或链接中:
click here
默认情况下,blob容器是私有的 。 要启用公共读取访问权限,您只需在创建容器时更改容器权限。 例如:
var blobStorageClient = storageAccount.CreateCloudBlobClient(); var container = blobStorageClient.GetContainerReference("pdf"); container.CreateIfNotExist(); var permissions = container.GetPermissions(); permissions.PublicAccess = BlobContainerPublicAccessType.Container; container.SetPermissions(permissions);
就像David解释的那样,只要容器不是私有的,你就可以通过它的url访问任何blob。
如果容器是私有的,您仍然可以使用共享访问签名 (SAS)通过URL访问您的文件。 这将允许您授予用户下载文件的权利(通过向他们提供SAS, 通常附加到URL ),但要及时限制它们。
例如,当您付费下载时,这是完美的,以保护您的文件,但如果有人付费,则允许在有限的时间内下载文件。
现在,在您的问题中,您声明您正在使用C#。 如果要在WPF / Windows窗体/控制台应用程序中下载文件,只需使用WebClient下载文件(如果容器是公共的,或者您使用SAS附加URL):
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");
- 具有计时器触发和Blob触发的连续Web作业
- 来自MemoryStream的AddAttachment
- 连续Azure WebJob何时停止NoAutomaticTrigger类型作业的通知
- Azure Mobile App使用现有数据库
- 上传时从video中抓取缩略图。 (Azure Blob存储)
- 错误索引方法’Class.Method’无法将参数’log’绑定到类型TraceWriter
- 无法加载文件或程序集’System.Runtime.InteropServices.RuntimeInformation
- 未调用AssemblyResolve,并且在序列化期间抛出FileNotFoundException
- 如何在Web App Service中使用“Azure文件存储”?