Hop*_*ope 11 c# azure azure-storage azure-storage-blobs
我想从azure存储中读取一个PDF文件字节,因为我有一个文件路径.
https://hostedPath/pdf/1001_12_Jun_2012_18_39_05_594.pdf
Run Code Online (Sandbox Code Playgroud)
那么可以通过直接传递其路径名来从blob存储中读取内容吗?我也在使用c#.
Dav*_*gon 13
只要blob是公共的,你就可以绝对传递blob url.例如,您可以将其嵌入到html图像或链接中:
<a href="https://myaccount.blob.core.windows.net/pdf/1001_12_Jun_2012_18_39_05_594.pdf">click here</a>
Run Code Online (Sandbox Code Playgroud)
默认情况下,blob容器是私有的.要启用公共读取访问权限,您只需在创建容器时更改容器权限.例如:
var blobStorageClient = storageAccount.CreateCloudBlobClient();
var container = blobStorageClient.GetContainerReference("pdf");
container.CreateIfNotExist();
var permissions = container.GetPermissions();
permissions.PublicAccess = BlobContainerPublicAccessType.Container;
container.SetPermissions(permissions);
Run Code Online (Sandbox Code Playgroud)
就像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");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23230 次 |
| 最近记录: |