摘要:[Windows Azure]檔案上傳至Blob
Blob(Binary Large Object),顧名思義為大型二進位物件,是微軟雲端Azure中提供的一種儲存服務,
專門用來存放如圖片、文件...等二進位資料。
Blob的階層概念很簡單,一個儲存帳戶(Storage Account)裡有許多Container,
而一個Container裡又可以有許多Blob個體,所以我都把Container想成是資料夾的概念。
簡單介紹過Blob後,就來介紹怎麼把檔案上傳至Blob,程式碼如下:
namespace WebRole1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
SaveToBlob(FileUpload1.FileName, FileUpload1.PostedFile.ContentType, FileUpload1.FileBytes);
}
}
private void SaveToBlob(string fileName, string contentType, byte[] data)
{
var account = CloudStorageAccount.FromConfigurationSetting("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString");
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("upload-files");
container.CreateIfNotExist();
var permissions = container.GetPermissions();
permissions.PublicAccess = BlobContainerPublicAccessType.Container;
container.SetPermissions(permissions);
var blob = container.GetBlobReference(fileName);
blob.Properties.ContentType = contentType;
blob.UploadByteArray(data);
}
}
}
重點只有在SaveToBlob()這個方法,流程大概為
1.先取得儲存帳戶,建立Blob Client。
2.用Blob Client建立一個名為"upload-files"的Container。
3.設定Container的存取權限。
4.該Container建立一Blob,並填入名稱、ContentType、內容等資料。
以上大致為建立一個Blob的標準流程。
微軟的東西真的很方便,你可以在Visual Studio裡的Server Explorer瀏覽Windows Azure Storage,
像我剛剛建立的Container就如下圖:
點兩下就可以瀏覽該Container裡所有的Blob物件
結論,Blob真的很方便又好用。