首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

.NET 整合 Windows Azure Blob 儲存服務完整指南

     編輯:程式設計綜合問答

.NET 應用程式可透過官方 SDK 輕鬆整合 Azure Blob Storage,實現非結構化資料(圖片、日誌、備份、大檔案)的雲端儲存與 CDN 加速分發。

前置準備

  1. Azure 訂閱與儲存體帳號:建立 Storage Account,記下連接字串或帳號名稱/金鑰。
  2. 安裝 NuGet 套件:
    Install-Package Azure.Storage.Blobs (最新 v12 SDK)
    舊專案可能用 WindowsAzure.Storage (v11,已進入維護模式)。

核心操作範例

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

string connectionString = "DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=xxx;EndpointSuffix=core.windows.net";
string containerName = "my-container";

var blobServiceClient = new BlobServiceClient(connectionString);
var containerClient = blobServiceClient.GetBlobContainerClient(containerName);
await containerClient.CreateIfNotExistsAsync(PublicAccessType.Blob); // 公開讀取

// 上傳
var blobClient = containerClient.GetBlobClient("test.txt");
using (var stream = File.OpenRead(@"C:\test.txt")) {
    await blobClient.UploadAsync(stream, overwrite: true);
}

// 下載
var downloadInfo = await blobClient.DownloadAsync();
using (var fileStream = File.OpenWrite(@"C:\downloaded.txt")) {
    await downloadInfo.Value.Content.CopyToAsync(fileStream);
}

// 列舉
await foreach (var blobItem in containerClient.GetBlobsAsync()) {
    Console.WriteLine(blobItem.Name);
}

// 產生 SAS 權杖(委派存取,無需帳號金鑰)
var sasBuilder = new BlobSasBuilder {
    BlobContainerName = containerName,
    BlobName = "test.txt",
    Resource = "b",
    ExpiresOn = DateTimeOffset.UtcNow.AddHours(1)
};
sasBuilder.SetPermissions(BlobSasPermissions.Read);
var sasToken = blobClient.GenerateSasUri(sasBuilder);
Console.WriteLine("SAS URL: " + sasToken);

關鍵概念

  • Container:類似資料夾,命名規則小寫、數字、連字號,長度 3-63 字元。
  • Blob 類型:Block Blob(大檔、串流上傳)、Append Blob(日誌追加)、Page Blob(VHD 磁碟)。
  • 存取層:Hot(頻繁存取)、Cool(低頻)、Archive(離線歸檔),影響費用與存取延遲。
  • SAS (Shared Access Signature):細粒度、時效性授權,前端直傳必備。

官方完整教學

微軟官方文檔含快速入門、最佳實務、效能調優、遷移指南:
https://learn.microsoft.com/zh-tw/azure/storage/blobs/storage-quickstart-blobs-dotnet

費用優化建議

  • 啟用生命週期管理規則:自動將舊資料轉 Cool/Archive 層或刪除。
  • 使用 CDN (Azure Front Door / CDN) 加速公開 Blob 分發,減少儲存體頻寬費用。
  • 批次操作減少交易次數費用。

掌握 Azure Blob SDK 基本操作,即可為 .NET 應用增加無限擴展的雲端儲存能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved