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, gunakan panduan pengembang untuk mempelajari bagaimana kode Anda dapat beroperasi pada kontainer, blob, dan fitur layanan Blob Storage.
Jika Anda ingin memulai dengan contoh lengkap, lihat Mulai Cepat: Pustaka klien Azure Blob Storage untuk Python.
Paket referensi | API (PyPi) | Sampel | kode | sumber pustaka Berikan umpan balik
Prasyarat
- Langganan Azure - buat akun secara gratis
- Akun penyimpanan Azure - buat akun penyimpanan
- Python 3.8+
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 denganazure-storage-blob
menggunakan perintah penginstalan dependensi opsional. Dalam contoh ini, kita menggunakan perintah berikutpip 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 menggunakanasyncio
pustaka.Buat objek klien menggunakan
async with
untuk mulai bekerja dengan sumber daya data. Hanya klien tingkat atas yang perlu menggunakanasync with
, karena klien lain yang dibuat darinya berbagi kumpulan koneksi yang sama. Dalam contoh ini, kita membuatBlobServiceClient
objek menggunakanasync with
, lalu membuatContainerClient
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 keamanan yang optimal, Microsoft merekomendasikan penggunaan ID Microsoft Entra dengan identitas terkelola untuk mengotorisasi permintaan terhadap data blob. Untuk informasi selengkapnya, lihat Mengotorisasi akses ke blob menggunakan ID Microsoft Entra.
Untuk mengotorisasi dengan ID Microsoft Entra, Anda perlu menggunakan prinsip keamanan. Jenis prinsip keamanan mana yang Anda butuhkan tergantung 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
Membuat aplikasi Anda
Saat Anda membuat 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 mengakses data dan melakukan tindakan tertentu menggunakan pustaka klien Azure Storage untuk Python:
Panduan | Deskripsi |
---|---|
Mengonfigurasi kebijakan coba lagi | Terapkan kebijakan coba lagi untuk operasi klien. |
Menyalin blob | Salin blob dari satu lokasi ke lokasi lain. |
Membuat kontainer | Buat kontainer blob. |
Buat SAS delegasi pengguna | Buat SAS delegasi pengguna untuk kontainer atau blob. |
Membuat dan mengelola sewa blob | Buat dan kelola kunci pada blob. |
Membuat dan mengelola sewa kontainer | Membuat dan mengelola kunci pada kontainer. |
Menghapus dan memulihkan blob | Hapus blob dan pulihkan blob yang dihapus sementara. |
Menghapus dan memulihkan kontainer | Hapus kontainer dan pulihkan kontainer yang dihapus sementara. |
Unduh blob | Unduh blob dengan menggunakan string, aliran, dan jalur file. |
Menemukan blob menggunakan tag | Atur dan ambil tag, dan gunakan tag untuk menemukan blob. |
Masukkan blob | Cantumkan blob dengan cara yang berbeda. |
Mendaftar kontainer | Cantumkan kontainer di akun dan berbagai opsi yang tersedia untuk menyesuaikan pencantuman. |
Mengelola properti dan metadata (blob) | Dapatkan dan atur properti dan metadata untuk blob. |
Mengelola properti dan metadata (kontainer) | Dapatkan dan atur properti dan metadata untuk kontainer. |
Penyetelan performa untuk transfer data | Optimalkan performa untuk operasi transfer data. |
Mengatur atau mengubah tingkat akses blob | Atur atau ubah tingkat akses untuk blob blok. |
Unggah blob | Pelajari cara mengunggah blob dengan menggunakan string, aliran, jalur file, dan metode lainnya. |