Lưu trữ azure blob trên python

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

Như Databricks đã thảo luận trong bài viết này rằng trong quá trình làm việc trên sổ ghi chép, bạn có thể gắn bộ chứa Blob Storage hoặc thư mục bên trong bộ chứa vào Hệ thống tệp Databricks. Toàn bộ điểm gắn kết với vùng lưu trữ blob chỉ đơn giản là sử dụng liên kết viết tắt tới dữ liệu của bạn bằng hệ thống tệp databricks thay vì phải tham chiếu toàn bộ URL tới vùng chứa blob của bạn mỗi khi bạn cần đọc/ghi dữ liệu từ blob đó . Bạn có thể tìm thêm chi tiết về cách lắp và cách sử dụng trong các bài viết được tham khảo ở trên

Mục đích của bài viết này là đề xuất một cách để kiểm tra xem mountpoint đã được tạo chưa và chỉ cố gắng tạo nó nếu nó không tồn tại bằng cách sử dụng python

Điều này có thể được thực hiện một cách đơn giản nếu chúng ta biết cách liệt kê các điểm gắn kết hiện có bằng python. May mắn thay, databricks cung cấp điều này cho chúng tôi bằng cách sử dụng dbutils. fs. lệnh mount[]. Để truy cập điểm gắn kết thực tế, chúng ta có thể làm như thế này

for mount in dbutils.fs.mounts[]:
  print [mount.mountPoint]

Biết cách truy cập các điểm gắn kết cho phép chúng tôi viết một số cú pháp Python để chỉ gắn kết nếu điểm gắn kết không tồn tại. Mã sẽ giống như sau

block_blob_service = BlockBlobService[account_name='myaccount', account_key='mykey']
0

Hoặc, bạn có thể thêm trình xử lý lỗi để in thông báo lỗi nếu đốm màu đã được gắn, như vậy

Làm cách nào để đọc đốm màu trong Python?

Đọc dữ liệu BLOB bằng Python .
Đầu tiên, soạn một câu lệnh SELECT truy xuất ảnh của một tác giả cụ thể
Thứ hai, lấy cấu hình cơ sở dữ liệu bằng cách gọi hàm read_db_config[]
Thứ ba, kết nối với cơ sở dữ liệu, khởi tạo con trỏ và thực hiện truy vấn. .
Cuối cùng, đóng con trỏ và kết nối cơ sở dữ liệu

Làm cách nào để kết nối Python với bộ lưu trữ Azure bằng ID ứng dụng khách và bí mật?

Đăng ký ứng dụng AAD mới và cấp quyền truy cập Bộ lưu trữ Azure . Cấp quyền truy cập vào dữ liệu Azure Blob bằng RBAC trong Cổng thông tin Azure. Đặt các giá trị của ID ứng dụng khách, ID đối tượng thuê và bí mật ứng dụng khách của ứng dụng AAD làm biến môi trường. AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET.

Làm cách nào để tải xuống thư mục từ bộ lưu trữ blob Azure bằng Python?

Sau đó, hãy làm theo hướng dẫn bên dưới. .
Tìm kiếm tài khoản lưu trữ trong Azure Portal
Nhấn New để tạo tài khoản lưu trữ mới
Điền vào tất cả các chi tiết
Sau khi tạo thành công tài khoản lưu trữ của bạn, hãy mở tài khoản lưu trữ của bạn và nhấp vào Khóa truy cập từ ngăn điều hướng bên trái để nhận thông tin đăng nhập tài khoản lưu trữ của bạn

Làm cách nào để tải tệp CSV lên bộ lưu trữ blob Azure bằng Python?

Tải mã Python csv[df] trở lại azure blob .
nhập gấu trúc dưới dạng pd
nhập numpy dưới dạng np
nhập ngày giờ
nhập hệ điều hành, uuid
từ màu xanh. kho. blob nhập BlobServiceClient, BlobClient, ContainerClient, __version__
chức năng xác định [df]
[hoạt động df]
một = df. to_csv['current19. csv', chỉ mục=Sai]

Chủ Đề