Bài viết này sẽ hướng dẫn bạn cách thực hiện các tình huống phổ biến bằng cách sử dụng bộ lưu trữ Blob. Các mẫu được viết bằng Python và sử dụng SDK lưu trữ Microsoft Azure cho Python. Các tình huống được đề cập bao gồm tải lên, liệt kê, tải xuống và xóa các đốm màu
[SẮC. BAO GỒM lưu trữ-blob-khái niệm-bao gồm]
[SẮC. BAO GỒM lưu trữ-tạo-tài khoản-bao gồm]
Tạo một thùng chứa
Dựa trên loại blob bạn muốn sử dụng, hãy tạo một đối tượng BlockBlobService, AppendBlobService hoặc PageBlobService. Đoạn mã sau sử dụng đối tượng BlockBlobService. Thêm phần sau vào gần đầu bất kỳ tệp Python nào mà bạn muốn truy cập theo chương trình Bộ lưu trữ Azure Block Blob
from azure.storage.blob import BlockBlobService
Đoạn mã sau tạo đối tượng BlockBlobService bằng tên tài khoản lưu trữ và khóa tài khoản. Thay 'myaccount' và 'mykey' bằng tên tài khoản và khóa của bạn
block_blob_service = BlockBlobService[account_name='myaccount', account_key='mykey']
[SẮC. BAO GỒM lưu trữ-vùng chứa-đặt tên-quy tắc-bao gồm]
Trong ví dụ mã sau, bạn có thể sử dụng đối tượng BlockBlobService để tạo vùng chứa nếu nó không tồn tại
block_blob_service.create_container['mycontainer']
Theo mặc định, vùng chứa mới là riêng tư, vì vậy bạn phải chỉ định khóa truy cập bộ nhớ của mình [như bạn đã làm trước đó] để tải xuống các đốm màu từ vùng chứa này. Nếu bạn muốn cung cấp các đốm màu trong vùng chứa cho mọi người, bạn có thể tạo vùng chứa và chuyển cấp truy cập công khai bằng mã sau
from azure.storage.blob import PublicAccess
block_blob_service.create_container['mycontainer', public_access=PublicAccess.Container]
Ngoài ra, bạn có thể sửa đổi vùng chứa sau khi đã tạo vùng chứa bằng mã sau
block_blob_service.set_container_acl['mycontainer', public_access=PublicAccess.Container]
Sau thay đổi này, bất kỳ ai trên Internet đều có thể nhìn thấy các đốm màu trong vùng chứa công cộng nhưng chỉ bạn mới có thể sửa đổi hoặc xóa chúng
Tải một đốm màu lên vùng chứa
Để tạo một khối blob và tải dữ liệu lên, hãy sử dụng các phương thức create_blob_from_path, create_blob_from_stream, create_blob_from_bytes hoặc create_blob_from_text. Chúng là các phương thức cấp cao thực hiện phân đoạn cần thiết khi kích thước của dữ liệu vượt quá 64 MB
create_blob_from_path tải lên nội dung của tệp từ đường dẫn đã chỉ định và create_blob_from_stream tải lên nội dung từ tệp/luồng đã mở. create_blob_from_bytes tải lên một mảng byte và create_blob_from_text tải lên giá trị văn bản đã chỉ định bằng cách sử dụng mã hóa đã chỉ định [mặc định là UTF-8]
Ví dụ sau tải lên nội dung của hoàng hôn. png vào blob myblob
from azure.storage.blob import ContentSettings
block_blob_service.create_blob_from_path[
'mycontainer',
'myblockblob',
'sunset.png',
content_settings=ContentSettings[content_type='image/png']
]
Liệt kê các đốm màu trong một vùng chứa
Để liệt kê các đốm màu trong một vùng chứa, hãy sử dụng phương thức list_blobs. Phương thức này trả về một trình tạo. Đoạn mã sau xuất tên của từng đốm màu trong vùng chứa ra bàn điều khiển
generator = block_blob_service.list_blobs['mycontainer']
for blob in generator:
print[blob.name]
Tải xuống các đốm màu
Để tải xuống dữ liệu từ blob, hãy sử dụng get_blob_to_path, get_blob_to_stream, get_blob_to_bytes hoặc get_blob_to_text. Chúng là các phương thức cấp cao thực hiện phân đoạn cần thiết khi kích thước của dữ liệu vượt quá 64 MB
Ví dụ sau minh họa việc sử dụng get_blob_to_path để tải xuống nội dung của blob myblob và lưu trữ nó cho đến khi mặt trời lặn. tập tin png
block_blob_service.get_blob_to_path['mycontainer', 'myblockblob', 'out-sunset.png']
Xóa một đốm màu
Cuối cùng, để xóa một đốm màu, hãy gọi delete_blob
________số 8
Viết cho một append blob
Một đốm màu chắp thêm được tối ưu hóa cho các hoạt động chắp thêm, chẳng hạn như ghi nhật ký. Giống như một block blob, một append blob bao gồm các khối, nhưng khi bạn thêm một khối mới vào một append blob, nó luôn được thêm vào cuối blob. Bạn không thể cập nhật hoặc xóa một khối hiện có trong một đốm màu nối thêm. ID khối cho một blob nối thêm không được hiển thị như chúng dành cho một blob khối
Mỗi khối trong một đốm màu nối thêm có thể có kích thước khác nhau, tối đa là 4 MB và một đốm màu nối thêm có thể bao gồm tối đa 50.000 khối. Do đó, kích thước tối đa của một append blob lớn hơn 195 GB một chút [4 MB X 50.000 khối]
Ví dụ dưới đây tạo một append blob mới và thêm một số dữ liệu vào nó, mô phỏng một thao tác ghi nhật ký đơn giản
Trong blog này, tôi sẽ chỉ cho bạn một gói rất hữu ích trong python đã rất hữu ích đối với tôi trong vài tháng qua khi tương tác với bộ nhớ Azure blob để tải lên, tải xuống và liệt kê các đốm màu theo chương trình từ một vùng chứa trong tài khoản bộ nhớ Azure. Đối với điều này, tôi đang sử dụng Azure. kho. gói đốm
Trên windows, sử dụng dấu nhắc lệnh để kích hoạt lệnh cài đặt pip để cài đặt Azure. kho. gói blob trong môi trường python của bạn
pip install azure.storage.blob
Để điều này hoạt động, hãy đảm bảo bạn sử dụng phiên bản bên dưới hoặc cao hơn. Để tìm phiên bản, hãy chạy mã bên dưới trong sổ ghi chép python
block_blob_service = BlockBlobService[account_name='myaccount', account_key='mykey']
0Bây giờ hãy đảm bảo rằng bạn đã thiết lập các biến môi trường của mình bằng chuỗi kết nối với tài khoản lưu trữ Azure của bạn. Bạn cũng có thể sử dụng kho khóa Azure để xác thực thay vì biến môi trường windows. Tôi thích kho khóa Azure hơn và nếu bạn chưa làm điều đó trước đây, tôi sẽ tạo một bài đăng trên blog cho biết cách bạn có thể sử dụng kho khóa để xác thực trong python
ví dụ chuỗi kết nối
block_blob_service = BlockBlobService[account_name='myaccount', account_key='mykey']
1kích hoạt lệnh bên dưới trong dấu nhắc lệnh để đặt biến môi trường
block_blob_service = BlockBlobService[account_name='myaccount', account_key='mykey']
2quay lại sổ ghi chép python của bạn, bạn sẽ có thể kết nối với tài khoản lưu trữ của mình bằng mã bên dưới