Microsoft Azure Storage Explorer 文件上传

  上周主管说,要把每次开过的发票,要下载成Pdf的文件,然后就实时的将这些发票存到云上面去。

 就是这个Microsoft Azure ,微软的亲儿子。

先把代码贴上来吧,挺简单的。

复制代码
 1 ##1.链接账号密码
 2                 StorageCredentials storageCredentials = new StorageCredentials(
 3                 System.Configuration.ConfigurationManager.AppSettings["Blob_AccountName"].ToString(),
 4                 System.Configuration.ConfigurationManager.AppSettings["Blob_AccountKey"].ToString()
 5                                                                               );
 6                 CloudStorageAccount storageAccount = new CloudStorageAccount(storageCredentials, "core.chinacloudapi.cn", true);
 7                 CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
 8                 CloudBlobContainer container;
 9                 CloudBlockBlob blockBlob = null;//怎么去实例化声明
10  ##2.下面这个就是将文件上传到Blob中,这个acsh是你的容器的名字,后面加上"/"   就是路径了,我写的这个是年月日的文件夹
11                  container = blobClient.GetContainerReference("acsh/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "");

12 ##3.FPQQLSH这个是你传到云里的文件夹的名称。 13 blockBlob = container.GetBlockBlobReference(FPQQLSH); 14 ##4. 文件以byte2stream(fileByte)的形式""传入 15 byte[] fileByte = Convert.FromBase64String(Convert.ToBase64String(PDF_FILE)); 16 blockBlob.UploadFromStreamAsync(byte2stream(fileByte));
复制代码

上面加粗的就是一个路径,为了考虑到以后方便备份和迁移,在Blob容器中创建这种带有这种年月日的文件夹。

一开始在本地用Code去想了最原始的方法,就是先在本地去创建一个年月日的文件夹,还找了许多代码,最后还是不行。

不能跑一个程序就创建一个文件夹吧,到时候大批量的发票就辣么多的文件夹那可就gg了。

然后,就想到直接怼路径咋样,咦~,丢雷亩啊~~~~~~居然行了。。。

 

复制代码
         string conn = "DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix=core.chinacloudapi.cn";
                conn = string.Format(conn, System.Configuration.ConfigurationManager.AppSettings["Blob_AccountName"].ToString(), System.Configuration.ConfigurationManager.AppSettings["Blob_AccountKey"].ToString());
                 var account = CloudStorageAccount.Parse(conn);
                var blobClient = account.CreateCloudBlobClient();
                string container = "";
                if (DSPTBM == "aa")
                {
                    container = "cc";
                }
                else if (DSPTBM == "AA")
                {
                    container = "CC";
                }
                else
                    container = "other";

                var blobContainer = blobClient.GetContainerReference(container);
                //check folder
                string yy = DateTimeOffset.Now.Year.ToString();
                string mm = DateTimeOffset.Now.Month.ToString();
                string dd = DateTimeOffset.Now.Day.ToString();
                string filename = $"{yy}/{mm}/{dd}/{FPQQLSH}.pdf";

                var cloudBlockBlob = blobContainer.GetBlockBlobReference(filename);
                byte[] fileByte = Convert.FromBase64String(Convert.ToBase64String(PDF_FILE));
                Task.Run(() => { return cloudBlockBlob.UploadFromStreamAsync(byte2stream(fileByte)); });
                return cloudBlockBlob.Uri.ToString();
复制代码

 

 public static Stream byte2stream(byte[] buffer)
        {
            Stream stream = new MemoryStream(buffer);
            stream.Seek(0, SeekOrigin.Begin);
            //设置stream的position为流的开始
            return stream;
        }

 

posted @   ProZkb  阅读(1118)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
历史上的今天:
2018-04-12 SQL之链接服务器(Sp_addlinkedserver)
点击右上角即可分享
微信分享提示