Azure Blob Storage là gì?
Azure Blob Storage là 1 dịch vụ lưu trữ phi cấu trúc dùng để lưu trữ file text, file nhị phân, media, …Mỗi blob chứa nhiều container, mỗi container có thể chứa 1 hoặc nhiều folder/file.
File lưu trữ được truy cập thông qua HTTP/HTTPS.
Sử dụng
Để sử dụng được dịch vụ Azure Blob Storage, bạn cần đăng ký account. Bạn tham khảo thêm ở đây.Sau khi tạo account xong, bạn sẽ có key để sử dụng dịch vụ
Tạo Project, bạn cần add thêm 2 thư viện thông qua Nuget:
- WindowsAzure.Storage
- ConfigurationManager
Ví dụ
Tạo 1 container
Tạo 1 chương trình console application, thêm key vào app.config<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key" />
</appSettings>
</configuration>
Khai báo thêm namespace:
using Microsoft.Azure; // Namespace for CloudConfigurationManager
using Microsoft.WindowsAzure.Storage; // Namespace for CloudStorageAccount
using Microsoft.WindowsAzure.Storage.Blob; // Namespace for Blob storage types
Dưới đây là đoạn code kiểm tra và tạo 1 container nếu nó chưa tồn tại:
///
/// Create a container
///
private static void CreateAContainer()
{
#region create a container
// Parse the connection string and return a reference to the storage account.
var storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
#endregion
}
Dòng lệnh:container.SetPermissions(
new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
cho phép bạn thiết lập container với chế độ Public. File có thể được truy xuất ở mọi nơi nhưng chỉ có bạn mới được quyền chỉnh sửa và xóa.
Upload 1 file bất kỳ
private static void UploadFile()
{
#region create a container
// Parse the connection string and return a reference to the storage account.
var storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
#endregion
var fileStream = new FileStream("Files/file1.txt", FileMode.Open);
byte[] bytes;
using (MemoryStream ms = new MemoryStream())
{
fileStream.CopyTo(ms);
bytes = ms.ToArray();
}
//upload file and return file detail
var blob = container.GetBlockBlobReference("text/" + "demo1.txt");
blob.Properties.ContentType = "text/plain";
blob.UploadFromByteArray(bytes, 0, bytes.Length);
}
Hàm UploadFromByteArray cho phép bạn upload byte array lên container. Trường hợp file (blob) không tồn tại, blog sẽ được tạo. Trường hợp ngược lại, blob sẽ bị overwrite.
Hi vọng với bài viết này, bạn sẽ dễ dàng lưu trữ file trên server.
Tham khảo: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-how-to-use-blobs
Have fun!
Nhận xét
Đăng nhận xét