Microsoft Azure Storage Explorer(2)

本文详细介绍了如何使用C#从Azure Blob存储下载文件,并将其转换为PDF格式进行下载的过程。通过创建存储凭证、获取容器引用及块Blob引用,实现了文件的下载与本地保存。此外,还展示了如何将下载的文件转换为流并最终转化为PDF文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
  

 之前写过一个往Microsoft Azure Storage Explorer里存储的功能,现在又要把东西给下载下来。

 记录一下:

 1  public string DownFileFromAzure()
 2         {
 3             StorageCredentials storageCredentials = new StorageCredentials(System.Configuration.ConfigurationManager.AppSettings["Blob_AccountName"].ToString(), System.Configuration.ConfigurationManager.AppSettings["Blob_AccountKey"].ToString());
 4             CloudStorageAccount storageAccount = new CloudStorageAccount(storageCredentials, "core.chinacloudapi.cn", true);
 5             CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
 6             CloudBlobContainer blobContainer = blobClient.GetContainerReference("acsh");//容器 
 7 
 8             CloudBlockBlob blockBlobs = blobContainer.GetBlockBlobReference("2019/7/1/131JS0E5201907000005");//除了外层的容器外的全路径
 9             string end=  blockBlobs.DownloadText();
10             byte[] ensbyte = new byte[100000000];
11             blockBlobs.DownloadToByteArray(ensbyte, 0);
12             blockBlobs.DownloadToFile(@"E:\DownFromAzure\Open", FileMode.OpenOrCreate);//直接下载到本地的文件
13             //blockBlobs.Delete();
14          
15             return "";
16         }

2.然后,现在要把这个从Azure Blob中下载的文件以流的形式去转成pdf的样子下载出来。

             MemoryStream stream = new MemoryStream();//声明一个流文件,用于接收DownloadToStream();
            stream.Seek(0,SeekOrigin.Begin);
            blockBlobs.DownloadToStream(stream);
            byte[] b = stream.ToArray();
            //string s = System.Text.Encoding.UTF8.GetString(b, 0, b.Length);
            //byte[] fileByte = Convert.FromBase64String(s);
            return b;
            //blockBlobs.Delete();   
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

SECURITY eCURITY = new SECURITY();
byte[] fileByte = eCURITY.DownFileFromAzure();
Response.Clear();
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}.pdf","Test"));
Response.BinaryWrite(fileByte);
Response.ContentType="application/pdf";
Response.Flush();
Response.End();
return View();

在这里一开始,就是遇到超时的情况:其实这个超时是要重写ReadTimeOut的方法,MemoryStream是继承Stream类的。

但是这个length不为0,所以这个是从云上把文件给获取下来了。

 

 因为在前端获取是将byte文件转成流文件的。所以,我在上面的获取流文件的时候,直接将

byte[] b = stream.ToArray();
然后用前端接收下,就把pdf的文件给下载下来l。

 

转载于:https://www.cnblogs.com/ZkbFighting/p/11122257.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值