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

记录一下:

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

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

             MemoryStream stream = new MemoryStream();//声明一个流文件,用于接收DownloadToStream();
stream.Seek(,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。

最新文章

  1. [No000099]软件版本命名规范
  2. 2.3.0-alpha1 is too old 解决办法
  3. Java性能调优
  4. Redis_Spring与Jedis的集成
  5. 在 linux 中利用samba访问windows的共享
  6. poj 2485 Highways
  7. 使用CSS3美化复选框checkbox
  8. ffmpeg学习笔记
  9. 分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小
  10. spring mvc 返回页面数据
  11. 解决行内元素间隙bug问题
  12. spring cloud 集成 swagger2 构建Restful APIS 说明文档
  13. Linux 启动详解之init
  14. 使用pycharm进行远程开发部署调试设置 与 远程部署调试是否必须使用远程主机的解释器?
  15. mysql一张表多个字段关联另一张表查询
  16. 003.DNS主从正反解析部署
  17. [CodeChef]GERALD07/[JZOJ4739]Ztxz16学图论
  18. Android集成Google地图详细步骤记录
  19. 一个http请求发送到后端的详细过程
  20. 简短的创建Ajax对象代码

热门文章

  1. CodeForces 1216C(假的计算几何+扫描线)
  2. vue基于 element-ui 实现菜单动画效果,任意添加 li 个数均匀撑满 ul 宽度
  3. 2019牛客暑期多校训练营(第二场)F.Partition problem
  4. jQuery 工具类函数-字符串操作函数
  5. How to parse version range
  6. 16python的map函数,filter函数,reduce函数
  7. 雪花算法 Snowflake & Sonyflake
  8. 如何从0到1设计一个MQ消息队列
  9. 网络知识02:TCP/IP概述
  10. zabbix监控mysql脚本(仅供参考)