Hızlı başlangıç: Python V12 SDK ile Blobları yönetme
Bu hızlı başlangıçta, Python kullanarak blob 'ları yönetmeyi öğreneceksiniz. Blob 'lar, görüntüler, belgeler, akış ortamları ve arşiv verileri gibi büyük miktarlarda metin veya ikili veri içerebilen nesnelerdir. Blobları karşıya yükleyebilir, indirebilir ve listetireceksiniz ve kapsayıcı oluşturup sileceksiniz.
Daha fazla kaynak:
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Azure Depolama hesabı. Depolama hesabı oluşturun.
- Python 2,7 veya 3.6 +.
Ayarlanıyor
bu bölümde, bir projeyi Python için v12 istemci kitaplığı Depolama Azure Blob ile çalışacak şekilde hazırlama adımları gösterilmektedir.
Proje oluşturma
BLOB-QuickStart-V12 adlı bir Python uygulaması oluşturun.
Konsol penceresinde (cmd, PowerShell veya Bash gibi), proje için yeni bir dizin oluşturun.
mkdir blob-quickstart-v12Yeni oluşturulan BLOB-hızlı başlangıç-V12 dizinine geçiş yapın.
cd blob-quickstart-v12BLOB-QuickStart-V12 dizininde, veri adlı başka bir dizin oluşturun. Bu dizin, blob veri dosyalarının oluşturulup depolanacağı yerdir.
mkdir data
Paketi yükler
hala uygulama dizininde, komutunu kullanarak Python paketi için Azure Blob Depolama istemci kitaplığı ' nı yükleyebilirsiniz pip install .
pip install azure-storage-blob
bu komut, Python paketi için Azure Blob Depolama istemci kitaplığı ve bağımlı olduğu tüm kitaplıkları yükleme. Bu durumda, yalnızca Python için Azure çekirdek kitaplığı vardır.
Uygulama çerçevesini ayarlama
Proje dizininden:
Kod Düzenleyicinizde yeni bir metin dosyası açın
importDeyim EkleTemel özel durum işleme dahil olmak üzere programın yapısını oluşturma
Kod şu şekildedir:
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)BLOB-QuickStart-V12 dizinine yeni dosyayı BLOB-QuickStart-v12.py olarak kaydedin.
Azure portalından kimlik bilgilerinizi kopyalama
örnek uygulama Azure Depolama istek yaptığında yetkilendirilmiş olması gerekir. Bir isteği yetkilendirmek için, depolama hesabı kimlik bilgilerinizi uygulamaya bağlantı dizesi olarak ekleyin. Depolama hesabı kimlik bilgilerinizi görüntülemek için aşağıdaki adımları izleyin:
Azure Portal’ında oturum açın.
Depolama hesabınızı bulun.
Depolama hesabı menü bölmesinde, güvenlik + ağ altında, erişim anahtarları' nı seçin. Burada, her anahtar için hesap erişim anahtarlarını ve tüm bağlantı dizesini görüntüleyebilirsiniz.

Erişim tuşları bölmesinde, anahtarları göster' i seçin.
KEY1 bölümünde bağlantı dizesi değerini bulun. Bağlantı dizesini kopyalamak için Panoya Kopyala simgesini seçin. Bir sonraki bölümde bağlantı dizesi değerini bir ortam değişkenine eklersiniz.

Depolama bağlantı dizelerinizi yapılandırma
Bağlantı dizesini kopyaladıktan sonra, uygulamayı çalıştıran yerel makinede yeni bir ortam değişkenine yazın. Ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminizin yönergelerini izleyin. <yourconnectionstring>Gerçek bağlantı dizeniz ile değiştirin.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
ortam değişkenini Windows ekledikten sonra, komut penceresinin yeni bir örneğini başlatmanız gerekir.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Programları yeniden Başlat
Ortam değişkenini ekledikten sonra, ortam değişkenini okumak için gereken tüm çalışan programları yeniden başlatın. Örneğin, devam etmeden önce geliştirme ortamınızı veya düzenleyiciyi yeniden başlatın.
Nesne modeli
Azure Blob Depolama, büyük miktarlarda yapılandırılmamış verileri depolamak için iyileştirilmiştir. Yapılandırılmamış veriler, metin veya ikili veriler gibi belirli bir veri modeline veya tanımına bağlı olmayan bir veri. BLOB depolama üç tür kaynak sunar:
- Depolama hesabı
- Depolama hesabındaki bir kapsayıcı
- Kapsayıcıda bir blob
Aşağıdaki diyagramda bu kaynaklar arasındaki ilişki gösterilmektedir.

Şu kaynaklarla etkileşim kurmak için aşağıdaki Python sınıflarını kullanın:
- BlobServiceClient:
BlobServiceClientsınıfı, Azure Depolama kaynaklarını ve blob kapsayıcılarını değiştirmenize olanak sağlar. - containerclient:
ContainerClientsınıfı, Azure Depolama kapsayıcılarını ve bunların bloblarını değiştirmenize olanak sağlar. - blobclient:
BlobClientsınıfı, Azure Depolama bloblarını değiştirmenize olanak sağlar.
Kod örnekleri
bu örnek kod parçacıkları, Python için Azure Blob Depolama istemci kitaplığı ile aşağıdaki görevlerin nasıl yapılacağını gösterir:
- Bağlantı dizesini alma
- Kapsayıcı oluşturma
- blob 'ları bir kapsayıcıya Upload
- Kapsayıcıdaki blobları listeleme
- Blob’ları indirme
- Kapsayıcı silme
Bağlantı dizesini alma
Aşağıdaki kod, depolama bağlantı dizesini yapılandırma bölümünde oluşturulan ortam değişkeninden depolama hesabı bağlantı dizesini alır.
Bu kodu bloğunun içine ekleyin 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')
Kapsayıcı oluşturma
Yeni kapsayıcı için bir ad belirleyin. Aşağıdaki kod, benzersiz olduğundan emin olmak için kapsayıcı adına bir UUID değeri ekler.
Önemli
Kapsayıcı adlarının küçük harfle yazılması gerekir. Kapsayıcıları ve blobları adlandırma hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Bunlara Başvurma.
From_connection_string yöntemini çağırarak BlobServiceClient sınıfının bir örneğini oluşturun. Ardından, depolama hesabınızda kapsayıcıyı gerçekten oluşturmak için create_container yöntemini çağırın.
Bu kodu bloğunun sonuna ekleyin 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)
blob 'ları bir kapsayıcıya Upload
Aşağıdaki kod parçacığı:
- Veri dosyalarını tutmak için yerel bir dizin oluşturur.
- Yerel dizinde bir metin dosyası oluşturur.
- Kapsayıcı oluşturma bölümünde BlobServiceClient üzerinde Get_blob_client yöntemini çağırarak bir blobclient nesnesine bir başvuru alır.
- Upload_blob yöntemini çağırarak yerel metin dosyasını bloba yükler.
Bu kodu bloğunun sonuna ekleyin 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)
Kapsayıcıdaki blobları listeleme
List_blobs yöntemini çağırarak kapsayıcıdaki Blobları listeleyin. Bu durumda, kapsayıcıya yalnızca bir blob eklenmiş, bu nedenle listeleme işlemi yalnızca bir BLOB döndürüyor.
Bu kodu bloğunun sonuna ekleyin 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)
Blob’ları indirme
Download_blob yöntemini çağırarak önceden oluşturulmuş blobu indirin. Örnek kod, yerel dosya sisteminde her iki dosyayı da görebilmeniz için dosya adına "ındır" adlı bir sonek ekler.
Bu kodu bloğunun sonuna ekleyin 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'))
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().readall())
Kapsayıcı silme
Aşağıdaki kod, delete_container yöntemi kullanılarak kapsayıcının tamamını kaldırarak uygulamanın oluşturduğu kaynakları temizler. Ayrıca, isterseniz yerel dosyaları silebilirsiniz.
Uygulama, input() BLOB, kapsayıcı ve yerel dosyaları silmeden önce çağırarak kullanıcı girişi için duraklatılır. Kaynakların silinmeden önce doğru şekilde oluşturulduğunu doğrulayın.
Bu kodu bloğunun sonuna ekleyin 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")
Kodu çalıştırma
bu uygulama yerel klasörünüzde bir sınama dosyası oluşturur ve Azure Blob Depolama yükler. Örnek daha sonra kapsayıcıdaki Blobları listeler ve dosyayı yeni bir adla indirir. Eski ve yeni dosyaları karşılaştırabilirsiniz.
BLOB-QuickStart-v12.py dosyasını içeren dizine gidin ve python uygulamayı çalıştırmak için aşağıdaki komutu yürütün.
python blob-quickstart-v12.py
Uygulamanın çıktısı aşağıdaki örneğe benzer:
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
Temizleme işlemine başlamadan önce, iki dosya için veri klasörünüzü kontrol edin. Bunları açabilir ve aynı olduğunu gözlemleyebilirsiniz.
Dosyaları doğruladıktan sonra, test dosyalarını silmek ve tanıtımı sona almak için ENTER tuşuna basın.
Sonraki adımlar
Bu hızlı başlangıçta Python kullanarak blobları karşıya yükleme, indirme ve listeye ekleme hakkında daha fazla bilgiye yer vediniz.
Blob depolama örnek uygulamalarını görmek için devam edin:
- Daha fazla bilgi edinmek için bkz. Python Depolama azure istemci kitaplıkları.
- Öğreticiler, örnekler, hızlı başlangıçlar ve diğer belgeler için Python Geliştiricileri için Azure'ı ziyaret edin.