Mulai Cepat: Mengelola blob dengan Python v12 SDK

Di panduan mulai cepat ini, Anda akan belajar cara mengelola blob dengan menggunakan Python. Blob adalah objek yang dapat menyimpan banyak data teks atau biner, termasuk gambar, dokumen, media streaming, dan data arsip. Anda akan mengunggah, mengunduh, dan mencantumkan blob, serta membuat dan menghapus kontainer.

Sumber daya lainnya:

Prasyarat

Menyiapkan

Bagian ini akan memandu Anda dalam menyiapkan proyek untuk bekerja menggunakan pustaka klien Azure Blob Storage v12 untuk Python.

Membuat proyek

Buat aplikasi Python bernama blob-quickstart-v12.

  1. Di jendela konsol (seperti cmd, PowerShell, atau Bash), buat direktori baru untuk proyek.

    mkdir blob-quickstart-v12
    
  2. Beralih ke direktori blob-quickstart-v12 yang baru dibuat.

    cd blob-quickstart-v12
    

Instal paket

Saat masih dalam direktori aplikasi, instal pustaka klien Azure Blob Storage untuk paket Python dengan menggunakan perintah pip install.

pip install azure-storage-blob

Perintah ini menginstal pustaka klien Azure Blob Storage untuk paket Python dan semua pustaka yang bergantung padanya. Dalam kasus ini, hanya perpustakaan inti Azure untuk Python.

Menyiapkan kerangka kerja aplikasi

Dari direktori proyek:

  1. Membuka file teks baru di editor kode Anda

  2. Menambahkan pernyataan import

  3. Membuat struktur program, termasuk penanganan pengecualian mendasar

    Berikut adalah kodenya:

    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)
    
  4. Simpan file baru sebagai blob-quickstart-v12.py di direktori blob-quickstart-v12.

Salin kredensial Anda dari portal Microsoft Azure

Saat aplikasi contoh membuat permintaan ke Azure Storage, aplikasi contoh harus diotorisasi. Untuk mengotorisasi permintaan, tambahkan kredensial akun penyimpanan Anda ke aplikasi sebagai string koneksi. Untuk melihat kredensial akun penyimpanan Anda, ikuti langkah-langkah berikut:

  1. Masuk ke portal Azure.

  2. Temukan akun penyimpanan Anda.

  3. Di panel menu akun penyimpanan, di Keamanan + jaringan, pilih Kunci akses. Di sini, Anda dapat melihat kunci akses akun dan string koneksi lengkap untuk setiap kunci.

    Screenshot that shows where the access key settings are in the Azure portal

  4. Di panel Kunci akses, pilih Tampilkan kunci.

  5. Di bagian kunci1, cari nilai String koneksi. Pilih ikon Salin ke clipboard untuk menyalin string koneksi. Anda akan menambah nilai string koneksi ke variabel lingkungan di bagian berikutnya.

    Screenshot showing how to copy a connection string from the Azure portal

Konfigurasikan string koneksi penyimpanan Anda

Setelah menyalin string koneksi Anda, tuliskan ke variabel lingkungan baru di komputer lokal yang menjalankan aplikasi. Untuk mengatur variabel lingkungan, buka jendela konsol, dan ikuti petunjuk untuk sistem operasi Anda. Ganti <yourconnectionstring> dengan string koneksi Anda yang sebenarnya.

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Setelah menambahkan variabel lingkungan di Windows, Anda harus memulai instans baru dari jendela perintah.

Menghidupkan ulang program

Setelah Anda menambahkan variabel lingkungan, hidupkan ulang semua program yang sedang berjalan yang perlu membaca variabel lingkungan. Misalnya, hidupkan ulang lingkungan pengembangan atau editor sebelum Anda melanjutkan.

Model objek

Azure Blob Storage dioptimalkan untuk menyimpan data tidak terstruktur dalam jumlah besar. Data tidak terstruktur adalah data yang tidak mematuhi model atau definisi data tertentu, seperti data teks atau biner. Penyimpanan blob menawarkan tiga jenis sumber daya:

  • Akun penyimpanan
  • Kontainer di akun penyimpanan
  • Blob di dalam kontainer

Diagram berikut menunjukkan hubungan antara ketiga sumber daya ini.

Diagram of Blob storage architecture

Gunakan kelas Python berikut untuk berinteraksi dengan sumber daya ini:

  • BlobServiceClient: Kelas BlobServiceClient ini memungkinkan Anda memanipulasi sumber daya Azure Storage dan kontainer blob.
  • ContainerClient: Kelas ContainerClient ini memungkinkan Anda untuk memanipulasi kontainer Azure Storage dan blobnya.
  • BlobClient: Kelas BlobClient ini memungkinkan Anda memanipulasi blob Azure Storage.

Contoh kode

Contoh cuplikan kode ini menunjukkan cara melakukan tugas berikut dengan pustaka klien Azure Blob Storage untuk Python:

Mendapatkan string koneksi

Kode di bawah ini mengambil string koneksi akun penyimpanan dari variabel lingkungan yang dibuat di bagian Konfigurasikan string koneksi penyimpanan Anda.

Tambahkan kode ini di dalam blok try:

# 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')

Membuat kontainer

Tentukan nama untuk kontainer baru. Kode di bawah ini menambahkan nilai UUID ke nama kontainer untuk memastikan bahwa nama tersebut unik.

Penting

Nama kontainer harus menggunakan huruf kecil. Untuk informasi selengkapnya tentang penamaan kontainer dan blob, lihat Menamai dan Mereferensikan Kontainer, Blob, dan Metadata.

Buat instans kelas BlobServiceClient dengan memanggil metode from_connection_string. Kemudian, panggil metode create_container untuk membuat kontainer di akun penyimpanan Anda.

Tambahkan kode ini ke akhir blok try:

# 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)

Mengunggah blob ke kontainer

Cuplikan kode berikut:

  1. Membuat direktori lokal untuk menyimpan file data.
  2. Membuat file teks di direktori lokal.
  3. Mendapatkan referensi ke objek BlobClient dengan memanggil metode get_blob_client pada BlobServiceClient dari bagian Buat kontainer.
  4. Mengunggah file teks lokal ke blob dengan memanggil metode upload_blob.

Tambahkan kode ini ke akhir blok try:

# Create a local directory to hold blob data
local_path = "./data"
os.mkdir(local_path)

# Create a file in the local data directory to upload and download
local_file_name = str(uuid.uuid4()) + ".txt"
upload_file_path = os.path.join(local_path, local_file_name)

# Write text to the file
file = open(upload_file_path, 'w')
file.write("Hello, World!")
file.close()

# Create a blob client using the local file name as the name for the blob
blob_client = blob_service_client.get_blob_client(container=container_name, blob=local_file_name)

print("\nUploading to Azure Storage as blob:\n\t" + local_file_name)

# Upload the created file
with open(upload_file_path, "rb") as data:
    blob_client.upload_blob(data)

Mencantumkan blob di kontainer

Cantumkan blob di kontainer dengan memanggil metode list_blobs. Dalam kasus ini, hanya satu blob yang telah ditambahkan ke kontainer, sehingga operasi pencantuman hanya mengembalikan satu blob itu.

Tambahkan kode ini ke akhir blok try:

print("\nListing blobs...")

# List the blobs in the container
blob_list = container_client.list_blobs()
for blob in blob_list:
    print("\t" + blob.name)

Mengunduh blob

Unduh blob yang dibuat sebelumnya dengan memanggil metode download_blob. Kode contoh menambahkan akhiran "DOWNLOAD" ke nama file sehingga Anda dapat melihat kedua file dalam sistem file lokal.

Tambahkan kode ini ke akhir blok try:

# Download the blob to a local file
# Add 'DOWNLOAD' before the .txt extension so you can see both files in the data directory
download_file_path = os.path.join(local_path, str.replace(local_file_name ,'.txt', 'DOWNLOAD.txt'))
blob_client = blob_service_client.get_container_client(container= container_name) 
print("\nDownloading blob to \n\t" + download_file_path)

with open(download_file_path, "wb") as download_file:
 download_file.write(blob_client.download_blob(blob.name).readall())

Menghapus kontainer

Kode berikut membersihkan sumber daya yang dibuat aplikasi dengan menghapus seluruh kontainer menggunakan metode delete_container. Anda juga dapat menghapus file lokal, jika mau.

Aplikasi berhenti sejenak untuk input pengguna dengan memanggil input() sebelum menghapus blob, kontainer, dan file lokal. Pastikan sumber daya dibuat dengan benar sebelum dihapus.

Tambahkan kode ini ke akhir blok try:

# Clean up
print("\nPress the Enter key to begin clean up")
input()

print("Deleting blob container...")
container_client.delete_container()

print("Deleting the local source and downloaded files...")
os.remove(upload_file_path)
os.remove(download_file_path)
os.rmdir(local_path)

print("Done")

Jalankan kode

Aplikasi ini membuat file uji di folder lokal Anda dan mengunggahnya ke Azure Blob Storage. Contoh tersebut kemudian mencantumkan blob di dalam kontainer, dan mengunduh file dengan nama baru. Anda dapat membandingkan file lama dan baru.

Navigasikan ke direktori yang berisi file blob-quickstart-v12.py, lalu jalankan perintah python berikut untuk menjalankan aplikasi.

python blob-quickstart-v12.py

Output aplikasi mirip dengan contoh berikut:

Azure Blob Storage v12 - Python quickstart sample

Uploading to Azure Storage as blob:
        quickstartcf275796-2188-4057-b6fb-038352e35038.txt

Listing blobs...
        quickstartcf275796-2188-4057-b6fb-038352e35038.txt

Downloading blob to
        ./data/quickstartcf275796-2188-4057-b6fb-038352e35038DOWNLOAD.txt

Press the Enter key to begin clean up

Deleting blob container...
Deleting the local source and downloaded files...
Done

Sebelum memulai proses pembersihan, periksa folder data Anda untuk kedua file tersebut. Anda dapat membukanya dan mengamati bahwa keduanya identik.

Setelah file diverifikasi, tekan tombol Enter untuk menghapus file uji dan menyelesaikan demo.

Langkah berikutnya

Di mulai cepat ini, Anda belajar cara mengunggah, mengunduh, dan mencantumkan blob menggunakan Python.

Untuk melihat aplikasi sampel penyimpanan Blob, lanjutkan ke: