C# Azure 儲存-Blob

來源:互聯網
上載者:User

標籤:

1. 前言

本文是根據Azure文檔與本人做了驗證之後寫的。

如果想下載微軟官網的demo, 請前往github https://github.com/Azure-Samples/storage-blob-dotnet-getting-started

 

2. 介紹

Azure Blob是儲存很大空間的服務,能允許儲存與訪問通過http或https。Blob是有公有與私人的屬性。公有是所有人可以看到的連結,私人是要通過秘鑰等才可以訪問到資源。

blob可以儲存:

1)images或document指向一個檔案夾

2)儲存檔案

3)視頻與音頻

4)儲存資料的備份和恢複、災難恢複和歸檔

5)由一個本機存放區資料進行分析或azure託管服務

 

3. 概念

1)Container容器:

一個容器可以包含很多個blobs,一個帳號可以包含很多個containers容器。請注意容器名字要為小寫。

2)Blob:

blob是一個檔案的屬性與大小。Azure儲存的blobs包含三種類型:block blobs、page blobs、append blobs。

  Block blobs:儲存的是text與二進位檔案,例如documents與媒體類型檔案。

  Append blobs:是類似於Block blobs,但是它是做了最佳化的操作,所以它是用於logging的操作。一個簡單的block blob或者 append blob 可以包含5000個blocks,最大每個檔案4MB,整個大小最大為194GB(4MB*50000)

  Page blobs:最大為1TB,是可以讀寫的操作。

 

4. 代碼開始

1)建立儲存賬戶

關於建立儲存的步驟,請參照

http://www.cnblogs.com/alunchen/p/5765700.html

中的第3大點

 

2)匯入包,在包管理器上面分別輸入下面的命令:

Install-Package WindowsAzure.Storage

Install-Package Microsoft.WindowsAzure.ConfigurationManager

 

2)建立串連

              string connStr = "DefaultEndpointsProtocol=https;AccountName=ceslighttest;AccountKey=cp3JXYFXu6XhV18oVQW2q7urHOhxhm9Guwl6uElTBWd9nxxxxxxxxxxxxxx;EndpointSuffix=core.chinacloudapi.cn";                //建立串連                CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connStr);               CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

 

3)建立容器

             // 建立容器,是否存在                CloudBlobContainer container = blobClient.GetContainerReference("testuimageblobcontainercompanyname");              container.CreateIfNotExists();

 

4)設定許可權

容器預設是private的,意思是要指定key才能下載圖片。如果要把圖片設定成對外哪裡都可以下載,請設定成public

                //容器預設是private的,意思是要指定key才能下載圖片。如果要把圖片設定成對外哪裡都可以下載,請設定成public                container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });

 

5)建立檔案,並上傳本地檔案

             // 建立檔案名稱,如果有相同的檔案名稱,則替換                CloudBlockBlob blockBlob = container.GetBlockBlobReference("23.jpg");                //上傳本地檔案                using (var fileStream = System.IO.File.OpenRead(@"E:\23.jpg"))                {                    blockBlob.UploadFromStream(fileStream);                }

 

6)show全部在容器裡面的blobs檔案

               // 輸出檔案大小與路徑uri                foreach (IListBlobItem item in container.ListBlobs(null, false))                {                    if (item.GetType() == typeof(CloudBlockBlob))                    {                        CloudBlockBlob blob = (CloudBlockBlob)item;                        r += string.Format("Block blob of length {0}: {1}", blob.Properties.Length, blob.Uri);                    }                    else if (item.GetType() == typeof(CloudPageBlob))                    {                        CloudPageBlob pageBlob = (CloudPageBlob)item;                        r += string.Format("Page blob of length {0}: {1}", pageBlob.Properties.Length, pageBlob.Uri);                    }                    else if (item.GetType() == typeof(CloudBlobDirectory))                    {                        CloudBlobDirectory directory = (CloudBlobDirectory)item;                        r += string.Format("Directory: {0}", directory.Uri);                    }                }

C# Azure 儲存-Blob

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.