Mulai menggunakan Azure Blob Storage dan Python

Artikel ini memperlihatkan kepada Anda cara menyambungkan ke Azure Blob Storage dengan menggunakan pustaka klien Azure Blob Storage untuk Python. Setelah terhubung, kode Anda dapat beroperasi pada kontainer, blob, dan fitur layanan Blob Storage.

Paket referensi | API (PyPi) | Sampel | kode | sumber pustaka Berikan umpan balik

Prasyarat

Menyiapkan proyek Anda

Bagian ini memandu Anda menyiapkan proyek untuk bekerja dengan pustaka klien Azure Blob Storage untuk Python.

Dari direktori proyek Anda, instal paket untuk pustaka klien Azure Blob Storage dan Azure Identity menggunakan pip install perintah . Paket identitas azure diperlukan untuk koneksi tanpa kata sandi ke layanan Azure.

pip install azure-storage-blob azure-identity

Kemudian buka file kode Anda dan tambahkan pernyataan impor yang diperlukan. Dalam contoh ini, kami menambahkan yang berikut ke file .py kami:

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

Informasi pustaka klien blob:

  • azure.storage.blob: Berisi kelas utama (objek klien) yang dapat Anda gunakan untuk beroperasi pada layanan, kontainer, dan blob.

Pemrograman asinkron

Pustaka klien Azure Blob Storage untuk Python mendukung API sinkron dan asinkron. API asinkron didasarkan pada pustaka asinkron Python.

Ikuti langkah-langkah ini untuk menggunakan API asinkron dalam proyek Anda:

  • Instal transportasi asinkron, seperti aiohttp. Anda dapat menginstal aiohttp bersama dengan azure-storage-blob menggunakan perintah penginstalan dependensi opsional. Dalam contoh ini, kita menggunakan perintah berikut pip install :

    pip install azure-storage-blob[aio]
    
  • Buka file kode Anda dan tambahkan pernyataan impor yang diperlukan. Dalam contoh ini, kami menambahkan yang berikut ke file .py kami:

    import asyncio
    
    from azure.identity.aio import DefaultAzureCredential
    from azure.storage.blob.aio import BlobServiceClient, BlobClient, ContainerClient
    

    Pernyataan import asyncio hanya diperlukan jika Anda menggunakan pustaka dalam kode Anda. Ini ditambahkan di sini untuk kejelasan, karena contoh dalam artikel panduan pengembang menggunakan asyncio pustaka.

  • Buat objek klien menggunakan async with untuk mulai bekerja dengan sumber daya data. Hanya klien tingkat atas yang perlu menggunakan async with, karena klien lain yang dibuat darinya berbagi kumpulan koneksi yang sama. Dalam contoh ini, kita membuat BlobServiceClient objek menggunakan async with, lalu membuat ContainerClient objek:

    async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
        container_client = blob_service_client.get_container_client(container="sample-container")
    

    Untuk mempelajari selengkapnya, lihat contoh asinkron di Mengotorisasi akses dan menyambungkan ke Blob Storage.

Informasi pustaka klien asinkron blob:

  • azure.storage.blob.aio: Berisi kelas utama yang dapat Anda gunakan untuk beroperasi pada layanan, kontainer, dan blob secara asinkron.

Mengotorisasi akses dan menyambungkan ke Blob Storage

Untuk menyambungkan aplikasi ke Blob Storage, buat instans kelas BlobServiceClient . Objek ini adalah titik awal Anda untuk berinteraksi dengan sumber daya data di tingkat akun penyimpanan. Anda dapat menggunakannya untuk beroperasi pada akun penyimpanan dan kontainernya. Anda juga dapat menggunakan klien layanan untuk membuat klien kontainer atau klien blob, tergantung pada sumber daya yang perlu Anda kerjakan.

Untuk mempelajari selengkapnya tentang membuat dan mengelola objek klien, termasuk praktik terbaik, lihat Membuat dan mengelola objek klien yang berinteraksi dengan sumber daya data.

Anda dapat mengotorisasi BlobServiceClient objek dengan menggunakan token otorisasi Microsoft Entra, kunci akses akun, atau tanda tangan akses bersama (SAS).

Untuk mengotorisasi dengan ID Microsoft Entra, Anda perlu menggunakan prinsip keamanan. Jenis prinsipal keamanan yang Anda butuhkan bergantung pada tempat aplikasi Anda berjalan. Gunakan tabel berikut sebagai panduan:

Tempat aplikasi berjalan Prinsip keamanan Panduan
Komputer lokal (pengembangan dan pengujian) Perwakilan layanan Untuk mempelajari cara mendaftarkan aplikasi, menyiapkan grup Microsoft Entra, menetapkan peran, dan mengonfigurasi variabel lingkungan, lihat Mengotorisasi akses menggunakan perwakilan layanan pengembang
Komputer lokal (pengembangan dan pengujian) Identitas pengguna Untuk mempelajari cara menyiapkan grup Microsoft Entra, menetapkan peran, dan masuk ke Azure, lihat Mengotorisasi akses menggunakan kredensial pengembang
Dihosting di Azure Identitas Terkelola Untuk mempelajari cara mengaktifkan identitas terkelola dan menetapkan peran, lihat Mengotorisasi akses dari aplikasi yang dihosting Azure menggunakan identitas terkelola
Dihosting di luar Azure (misalnya, aplikasi lokal) Perwakilan layanan Untuk mempelajari cara mendaftarkan aplikasi, menetapkan peran, dan mengonfigurasi variabel lingkungan, lihat Mengotorisasi akses dari aplikasi lokal menggunakan perwakilan layanan aplikasi

Mengotorisasi akses menggunakan DefaultAzureCredential

Cara mudah dan aman untuk mengotorisasi akses dan terhubung ke Blob Storage adalah dengan mendapatkan token OAuth dengan membuat instans DefaultAzureCredential . Anda kemudian dapat menggunakan kredensial tersebut untuk membuat objek BlobServiceClient .

Contoh berikut membuat BlobServiceClient objek menggunakan DefaultAzureCredential:

def get_blob_service_client_token_credential(self):
    # TODO: Replace <storage-account-name> with your actual storage account name
    account_url = "https://<storage-account-name>.blob.core.windows.net"
    credential = DefaultAzureCredential()

    # Create the BlobServiceClient object
    blob_service_client = BlobServiceClient(account_url, credential=credential)

    return blob_service_client

Jika proyek Anda menggunakan API asinkron, buat instans BlobServiceClient menggunakan async with:

# TODO: Replace <storage-account-name> with your actual storage account name
account_url = "https://<storage-account-name>.blob.core.windows.net"
credential = DefaultAzureCredential()

async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
    # Work with data resources in the storage account

Bangun aplikasi Anda

Saat Anda membangun aplikasi untuk bekerja dengan sumber daya data di Azure Blob Storage, kode Anda terutama berinteraksi dengan tiga jenis sumber daya: akun penyimpanan, kontainer, dan blob. Untuk mempelajari selengkapnya tentang jenis sumber daya ini, bagaimana mereka berhubungan satu dengan yang lain, dan bagaimana aplikasi berinteraksi dengan sumber daya, lihat Memahami bagaimana aplikasi berinteraksi dengan sumber daya data Blob Storage.

Panduan berikut menunjukkan kepada Anda cara bekerja dengan sumber daya data dan melakukan tindakan tertentu menggunakan pustaka klien Azure Storage untuk Python:

Panduan Deskripsi
Membuat kontainer Buat kontainer.
Menghapus dan memulihkan kontainer Hapus kontainer, dan jika penghapusan sementara diaktifkan, pulihkan kontainer yang dihapus.
Mendaftar kontainer Cantumkan kontainer di akun dan berbagai opsi yang tersedia untuk menyesuaikan pencantuman.
Mengelola properti dan metadata (kontainer) Dapatkan dan atur properti dan metadata untuk kontainer.
Membuat dan mengelola sewa kontainer Membuat dan mengelola kunci pada kontainer.
Membuat dan mengelola sewa blob Buat dan kelola kunci pada blob.
Unggah blob Pelajari cara mengunggah blob dengan menggunakan string, aliran, jalur file, dan metode lainnya.
Unduh blob Unduh blob dengan menggunakan string, aliran, dan jalur file.
Menyalin blob Salin blob dari satu lokasi ke lokasi lain.
Masukkan blob Cantumkan blob dengan cara yang berbeda.
Menghapus dan memulihkan Hapus blob, dan jika penghapusan sementara diaktifkan, pulihkan blob yang dihapus.
Menemukan blob menggunakan tag Atur dan ambil tag, dan gunakan tag untuk menemukan blob.
Mengelola properti dan metadata (blob) Dapatkan dan atur properti dan metadata untuk blob.
Mengatur atau mengubah tingkat akses blob Atur atau ubah tingkat akses untuk blob blok.