Chuyển đến nội dung chính

Hướng dẫn upload file bằng dịch vụ Azure Blob Storage

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

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.