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 @ 2019-04-12 09:58  ProZkb  阅读(1095)  评论(0编辑  收藏  举报