Hướng dẫn how do i download files from azure blob storage using python? - làm cách nào để tải xuống tệp từ bộ lưu trữ azure blob bằng python?

Jain khắc nghiệt

Giới thiệu

Trong Azure, bạn có thể lưu trữ dữ liệu của mình trong các tùy chọn lưu trữ khác nhau được cung cấp bởi Azure như Blob, Bảng, COSMOSDB, SQL-DB, v.v.

Trong ảnh này, chúng tôi sẽ tìm hiểu cách đọc hoặc tải xuống dữ liệu từ một tệp được lưu trữ trong bộ lưu trữ Azure Blob bằng Python.

Lưu trữ Azure Blob là giải pháp lưu trữ đối tượng Microsoft cho đám mây. Lưu trữ Blob được tối ưu hóa để lưu trữ số lượng lớn dữ liệu phi cấu trúc. is Microsoft’s object storage solution for the cloud. Blob storage is optimized to store massive amounts of unstructured data.

Dữ liệu phi cấu trúc là dữ liệu không tuân thủ một mô hình hoặc định nghĩa dữ liệu cụ thể, chẳng hạn như dữ liệu văn bản hoặc dữ liệu nhị phân. is data that doesn’t adhere to a particular data model or definition, such as text or binary data.

Bước đầu tiên là tạo tài khoản lưu trữ Azure. Sau đó, làm theo các hướng dẫn dưới đây:

  • Tài khoản lưu trữ tìm kiếm trong cổng thông tin Azure.
  • Nhấp mới để tạo tài khoản lưu trữ mới.
  • Điền vào tất cả các chi tiết nhóm, đăng ký, tên của tài khoản lưu trữ, khu vực, v.v.
  • 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 các 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. Sao chép và lưu chúng để sử dụng trong tương lai.
  • Chuyển đến phần container và tạo một container mới. Vui lòng cung cấp tên cho container của bạn và lưu nó để sử dụng trong tương lai.
  • Bây giờ bạn có thể tải lên các tệp của mình trong thùng chứa này.

Bây giờ, chúng tôi đã sẵn sàng để kết nối tài khoản lưu trữ này bằng Python. Đầu tiên, cài đặt các gói cần thiết. Sau đó, chạy lệnh sau:

pip install azure-storage-blob

Dưới đây là mã để kết nối tài khoản lưu trữ của bạn với tập lệnh Python:

from azure.storage.blob import BlobServiceClient

STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

CONTAINERNAME = "<CONTAINER_NAME>"

BLOBNAME = "<BLOB_FILE_NAME>"

blob_service_client_instance = BlobServiceClient(

account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

blob_client_instance = blob_service_client_instance.get_blob_client(

CONTAINERNAME, BLOBNAME, snapshot=None)

blob_data = blob_client_instance.download_blob()

data = blob_data.readall()

print(data)

Tải xuống và đọc các tệp từ Azure Blob Storage bằng Python

  • Trong dòng 1, chúng tôi nhập gói yêu cầu.
  • Trong các dòng 3 đến 6, chúng tôi xác định URL tài khoản lưu trữ, khóa truy cập của nó, tên container nơi các tệp của chúng tôi được lưu trữ và tên tệp Blob Namethe mà chúng tôi muốn đọc từ Azure Blob Storage.
  • Trong dòng 8, chúng tôi tạo một thể hiện của lớp

    from azure.storage.blob import BlobServiceClient

    STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

    STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

    CONTAINERNAME = "<CONTAINER_NAME>"

    BLOBNAME = "<BLOB_FILE_NAME>"

    blob_service_client_instance = BlobServiceClient(

    account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

    blob_client_instance = blob_service_client_instance.get_blob_client(

    CONTAINERNAME, BLOBNAME, snapshot=None)

    blob_data = blob_client_instance.download_blob()

    data = blob_data.readall()

    print(data)

    6 bằng cách chuyển URL tài khoản lưu trữ và khóa truy cập. Điều này sẽ thiết lập một kết nối với tài khoản lưu trữ của chúng tôi.
  • Trong dòng 11, chúng tôi sử dụng chức năng

    from azure.storage.blob import BlobServiceClient

    STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

    STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

    CONTAINERNAME = "<CONTAINER_NAME>"

    BLOBNAME = "<BLOB_FILE_NAME>"

    blob_service_client_instance = BlobServiceClient(

    account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

    blob_client_instance = blob_service_client_instance.get_blob_client(

    CONTAINERNAME, BLOBNAME, snapshot=None)

    blob_data = blob_client_instance.download_blob()

    data = blob_data.readall()

    print(data)

    7 để kết nối với tệp blob của chúng tôi. Sau đó, chúng tôi chuyển tên container và tên blob cho chức năng này.
  • Cuối cùng, trong các dòng 14 và 15, chúng tôi tải xuống dữ liệu blob, đọc hoàn toàn dữ liệu và sau đó in nó, giả sử rằng chúng tôi có một tệp văn bản trong bộ nhớ blob của chúng tôi.

Bằng cách làm theo các bước này, bạn có thể sử dụng Python để dễ dàng đọc và tải xuống các tệp từ Azure Blob Storage.

THẺ LIÊN QUAN

cộng đồng

Azure

Python

Người đóng góp

Jain khắc nghiệt

Bỏ qua nội dung chính

Trình duyệt này không còn được hỗ trợ.

Nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, cập nhật bảo mật và hỗ trợ kỹ thuật.

QuickStart: Thư viện máy khách lưu trữ Azure Blob cho Python

  • Bài báo
  • 27/09/2022
  • 7 phút để đọc

Trong bài viết này

Bắt đầu với Thư viện máy khách lưu trữ Azure Blob cho Python để quản lý Blobs và Container. Thực hiện theo các bước để cài đặt gói và thử mã ví dụ cho các tác vụ cơ bản.

Tài liệu tham khảo API | Mã nguồn thư viện | Gói (Pypi) | Mẫu

Điều kiện tiên quyết

  • Tài khoản Azure có đăng ký hoạt động - tạo tài khoản miễn phí.
  • Tài khoản lưu trữ Azure - Tạo tài khoản lưu trữ.
  • Python 2.7 hoặc 3,6+.

Đang cài đặt

Phần này hướng dẫn bạn thông qua việc chuẩn bị một dự án để làm việc với Thư viện máy khách lưu trữ Azure Blob V12 cho Python.

Tạo dự án

Tạo một ứng dụng Python có tên Blob-Quickstart-V12.

  1. Trong một cửa sổ giao diện điều khiển (như PowerShell, CMD hoặc bash), tạo một thư mục mới cho dự án.

    mkdir blob-quickstart-v12
  2. Chuyển sang thư mục Blob-Quickstart-V12 mới được tạo.

    cd blob-quickstart-v12

Cài đặt gói

Từ thư mục dự án, cài đặt thư viện máy khách lưu trữ Azure Blob cho gói Python bằng cách sử dụng lệnh

from azure.storage.blob import BlobServiceClient

STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

CONTAINERNAME = "<CONTAINER_NAME>"

BLOBNAME = "<BLOB_FILE_NAME>"

blob_service_client_instance = BlobServiceClient(

account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

blob_client_instance = blob_service_client_instance.get_blob_client(

CONTAINERNAME, BLOBNAME, snapshot=None)

blob_data = blob_client_instance.download_blob()

data = blob_data.readall()

print(data)

8.

pip install azure-storage-blob

Lệnh này cài đặt lưu trữ Azure Blob cho gói Python và thư viện mà nó phụ thuộc. Trong trường hợp này, sự phụ thuộc duy nhất là thư viện lõi Azure cho Python.

Thiết lập khung ứng dụng

Từ thư mục dự án, hãy làm theo các bước để tạo cấu trúc cơ bản của ứng dụng:

  1. Mở tệp văn bản mới trong trình chỉnh sửa mã của bạn
  2. Thêm câu lệnh

    from azure.storage.blob import BlobServiceClient

    STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

    STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

    CONTAINERNAME = "<CONTAINER_NAME>"

    BLOBNAME = "<BLOB_FILE_NAME>"

    blob_service_client_instance = BlobServiceClient(

    account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

    blob_client_instance = blob_service_client_instance.get_blob_client(

    CONTAINERNAME, BLOBNAME, snapshot=None)

    blob_data = blob_client_instance.download_blob()

    data = blob_data.readall()

    print(data)

    9, tạo cấu trúc cho chương trình và bao gồm xử lý ngoại lệ cơ bản, như được hiển thị bên dưới
  3. Lưu tệp mới dưới dạng Blob-Quickstart-V12.py trong thư mục Blob-Quickstart-V12.
import os, uuid from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__ try: print("Azure Blob Storage v" + __version__ + " - Python quickstart sample") # Quick start code goes here except Exception as ex: print('Exception:') print(ex)

Sao chép thông tin đăng nhập của bạn từ cổng thông tin Azure

Khi ứng dụng mẫu thực hiện yêu cầu lưu trữ Azure, nó phải được ủy quyền. Để ủy quyền yêu cầu, hãy thêm thông tin đăng nhập tài khoản lưu trữ của bạn vào ứng dụng dưới dạng chuỗi kết nối. Để xem thông tin đăng nhập tài khoản lưu trữ của bạn, hãy làm theo các bước sau:

  1. Đăng nhập vào cổng thông tin Azure.

  2. Xác định vị trí tài khoản lưu trữ của bạn.

  3. Trong ngăn Menu tài khoản lưu trữ, trong Bảo mật + Mạng, chọn các khóa truy cập. Tại đây, bạn có thể xem các khóa truy cập tài khoản và chuỗi kết nối hoàn chỉnh cho mỗi khóa.Security + networking, select Access keys. Here, you can view the account access keys and the complete connection string for each key.

  4. Trong ngăn Khóa Access, chọn Hiển thị khóa.Access keys pane, select Show keys.

  5. Trong phần KEY1, định vị giá trị chuỗi kết nối. Chọn biểu tượng sao chép vào bảng tạm để sao chép chuỗi kết nối. Bạn sẽ thêm giá trị chuỗi kết nối vào một biến môi trường trong phần tiếp theo.key1 section, locate the Connection string value. Select the Copy to clipboard icon to copy the connection string. You'll add the connection string value to an environment variable in the next section.

Định cấu hình chuỗi kết nối lưu trữ của bạn

Sau khi bạn sao chép chuỗi kết nối, hãy viết nó vào một biến môi trường mới trên máy cục bộ chạy ứng dụng. Để đặt biến môi trường, hãy mở cửa sổ bảng điều khiển và làm theo hướng dẫn cho hệ điều hành của bạn. Thay thế mkdir blob-quickstart-v12 0 bằng chuỗi kết nối thực tế của bạn.

  • các cửa sổ
  • Linux và macOS
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Sau khi bạn thêm biến môi trường trong Windows, bạn phải bắt đầu một phiên bản mới của cửa sổ lệnh.

Khởi động lại các chương trình

Sau khi bạn thêm biến môi trường, hãy khởi động lại mọi chương trình đang chạy sẽ cần đọc biến môi trường. Ví dụ: khởi động lại môi trường phát triển hoặc biên tập viên của bạn trước khi bạn tiếp tục.

Mô hình đối tượng

Lưu trữ Azure Blob được tối ưu hóa để lưu trữ một lượng lớn dữ liệu phi cấu trúc. Dữ liệu phi cấu trúc là dữ liệu không tuân thủ một mô hình hoặc định nghĩa dữ liệu cụ thể, chẳng hạn như dữ liệu văn bản hoặc dữ liệu nhị phân. Blob Storage cung cấp ba loại tài nguyên:

  • Tài khoản lưu trữ
  • Một thùng chứa trong tài khoản lưu trữ
  • Một đốm trong thùng chứa

Biểu đồ sau đây cho thấy mối quan hệ giữa các tài nguyên này:

Sử dụng các lớp Python sau để tương tác với các tài nguyên này:

  • BlobServiceClient: Lớp mkdir blob-quickstart-v12 1 cho phép bạn thao tác tài nguyên lưu trữ Azure và các thùng chứa Blob.
  • ContainerClient: Lớp mkdir blob-quickstart-v12 2 cho phép bạn điều khiển các thùng chứa Azure và các đốm màu của chúng.
  • BLOBCLIENT: Lớp mkdir blob-quickstart-v12 3 cho phép bạn điều khiển các đốm màu Azure.

Ví dụ mã

Các đoạn mã ví dụ này chỉ cho bạn cách thực hiện các tác vụ sau với thư viện máy khách lưu trữ Azure Blob cho Python:

  • Nhận chuỗi kết nối
  • Tạo một container
  • Tải Blobs lên một thùng chứa
  • Liệt kê các đốm màu trong một thùng chứa
  • Tải về Blobs
  • Xóa một container

Nhận chuỗi kết nối để xác thực

Mã bên dưới lấy chuỗi kết nối tài khoản lưu trữ từ biến môi trường được tạo trong phần Cấu hình chuỗi kết nối lưu trữ của bạn.

Thêm mã này bên trong khối mkdir blob-quickstart-v12 4:

# Retrieve the connection string for use with the application. The storage # connection string is stored in an environment variable on the machine # running the application called AZURE_STORAGE_CONNECTION_STRING. If the environment variable is # created after the application is launched in a console or with Visual Studio, # the shell or application needs to be closed and reloaded to take the # environment variable into account. connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')

Tạo một container

Tải Blobs lên một thùng chứa

Liệt kê các đốm màu trong một thùng chứa

Tải về Blobs

# Create the BlobServiceClient object which will be used to create a container client blob_service_client = BlobServiceClient.from_connection_string(connect_str) # Create a unique name for the container container_name = str(uuid.uuid4()) # Create the container container_client = blob_service_client.create_container(container_name)

Tải Blobs lên một thùng chứa

Liệt kê các đốm màu trong một thùng chứa

  1. Tải về Blobs
  2. Xóa một container
  3. Nhận chuỗi kết nối để xác thực
  4. Mã bên dưới lấy chuỗi kết nối tài khoản lưu trữ từ biến môi trường được tạo trong phần Cấu hình chuỗi kết nối lưu trữ của bạn.

Tải về Blobs

from azure.storage.blob import BlobServiceClient

STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

CONTAINERNAME = "<CONTAINER_NAME>"

BLOBNAME = "<BLOB_FILE_NAME>"

blob_service_client_instance = BlobServiceClient(

account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

blob_client_instance = blob_service_client_instance.get_blob_client(

CONTAINERNAME, BLOBNAME, snapshot=None)

blob_data = blob_client_instance.download_blob()

data = blob_data.readall()

print(data)

0

Liệt kê các đốm màu trong một thùng chứa

Tải về Blobs

Tải về Blobs

from azure.storage.blob import BlobServiceClient

STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

CONTAINERNAME = "<CONTAINER_NAME>"

BLOBNAME = "<BLOB_FILE_NAME>"

blob_service_client_instance = BlobServiceClient(

account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

blob_client_instance = blob_service_client_instance.get_blob_client(

CONTAINERNAME, BLOBNAME, snapshot=None)

blob_data = blob_client_instance.download_blob()

data = blob_data.readall()

print(data)

1

Tải về Blobs

Xóa một container

Tải về Blobs

from azure.storage.blob import BlobServiceClient

STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

CONTAINERNAME = "<CONTAINER_NAME>"

BLOBNAME = "<BLOB_FILE_NAME>"

blob_service_client_instance = BlobServiceClient(

account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

blob_client_instance = blob_service_client_instance.get_blob_client(

CONTAINERNAME, BLOBNAME, snapshot=None)

blob_data = blob_client_instance.download_blob()

data = blob_data.readall()

print(data)

2

Xóa một container

Nhận chuỗi kết nối để xác thực

Mã bên dưới lấy chuỗi kết nối tài khoản lưu trữ từ biến môi trường được tạo trong phần Cấu hình chuỗi kết nối lưu trữ của bạn.

Tải về Blobs

from azure.storage.blob import BlobServiceClient

STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

CONTAINERNAME = "<CONTAINER_NAME>"

BLOBNAME = "<BLOB_FILE_NAME>"

blob_service_client_instance = BlobServiceClient(

account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

blob_client_instance = blob_service_client_instance.get_blob_client(

CONTAINERNAME, BLOBNAME, snapshot=None)

blob_data = blob_client_instance.download_blob()

data = blob_data.readall()

print(data)

3

Xóa một container

Nhận chuỗi kết nối để xác thực

Mã bên dưới lấy chuỗi kết nối tài khoản lưu trữ từ biến môi trường được tạo trong phần Cấu hình chuỗi kết nối lưu trữ của bạn.

Thêm mã này bên trong khối mkdir blob-quickstart-v12 4:

Quyết định tên cho container mới. Mã bên dưới nối giá trị UUID vào tên container để đảm bảo rằng nó là duy nhất.

from azure.storage.blob import BlobServiceClient

STORAGEACCOUNTURL = "//<STORAGE_ACCOUNT_NAME>.blob.core.windows.net"

STORAGEACCOUNTKEY = "<STORAGE_ACCOUNT_KEY>"

CONTAINERNAME = "<CONTAINER_NAME>"

BLOBNAME = "<BLOB_FILE_NAME>"

blob_service_client_instance = BlobServiceClient(

account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)

blob_client_instance = blob_service_client_instance.get_blob_client(

CONTAINERNAME, BLOBNAME, snapshot=None)

blob_data = blob_client_instance.download_blob()

data = blob_data.readall()

print(data)

5

Tạo một thể hiện của lớp blobserviceclient bằng cách gọi phương thức từ_connection_string. Sau đó, hãy gọi phương thức created_container để thực sự tạo thùng chứa trong tài khoản lưu trữ của bạn.

Thêm mã này vào cuối khối mkdir blob-quickstart-v12 4:

Đoạn mã sau:Enter key to delete the test files along with the container you created in the storage account.

Tạo một thư mục cục bộ để giữ các tệp dữ liệu.

Tạo một tệp văn bản trong thư mục cục bộ.

Nhận được tham chiếu đến một đối tượng Blobclient bằng cách gọi phương thức GET_BLOB_CLIENT trên BlobServiceClient từ phần Tạo một phần chứa.

  • Tải lên tệp văn bản cục bộ lên blob bằng cách gọi phương thức upload_blob.
  • Liệt kê các đốm màu trong container bằng cách gọi phương thức list_blobs. Trong trường hợp này, chỉ có một blob đã được thêm vào container, vì vậy hoạt động niêm yết chỉ trả về một đốm màu đó.

Tải xuống Blob được tạo trước đó bằng cách gọi phương thức Tải xuống_blob. Mã ví dụ thêm một hậu tố của "Tải xuống" vào tên tệp để bạn có thể thấy cả hai tệp trong hệ thống tệp cục bộ.

Mã sau đây làm sạch các tài nguyên mà ứng dụng đã tạo bằng cách xóa toàn bộ container bằng phương thức Delete_Container. Bạn cũng có thể xóa các tệp cục bộ, nếu bạn muốn.

Làm cách nào để tải xuống các tệp từ bộ nhớ Azure Blob trong Python?

Sau đó, làm theo các hướng dẫn dưới đây:..
Tài khoản lưu trữ tìm kiếm trong cổng thông tin Azure ..
Nhấp mới để 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 các 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 xuống dữ liệu từ Azure Blob?

Trong hướng dẫn này, bạn học cách:..
Điều kiện tiên quyết để xuất dữ liệu từ lưu trữ Azure Blob với nhập/xuất Azure ..
Bước 1: Tạo một công việc xuất khẩu ..
Bước 2: Gửi các ổ đĩa ..
Bước 3: Cập nhật công việc với thông tin theo dõi ..
Bước 4: Nhận đĩa ..
Bước 5: Mở khóa các đĩa ..

Làm cách nào để đọc các tệp từ lưu trữ Azure Blob trong Python?

Dưới đây là các bước để làm theo quy trình này:..
Tải xuống dữ liệu từ Azure Blob với mẫu mã Python sau đây bằng dịch vụ Blob.Thay thế biến trong mã sau bằng các giá trị cụ thể của bạn: Bản sao Python.....
Đọc dữ liệu vào một dữ liệu gấu trúc từ tệp đã tải xuống.Bản sao Python ..

Làm thế nào để bạn tải lên và tải xuống Blobs từ Azure Blob Storage với Python?

Mẫu này cho thấy cách thực hiện các hoạt động sau của các đốm lưu trữ với SDK lưu trữ..
Tạo tài khoản lưu trữ bằng cổng Azure ..
Tạo một container ..
Tải lên một tệp để chặn blob ..
Danh sách Blebs ..
Tải xuống một blob vào tệp ..
Xóa một đốm ..
Xóa container ..

Chủ đề