Back to snippets
azure_blob_storage_quickstart_upload_list_download_delete.py
pythonThis quickstart shows how to use the Azure Blob Storage client library for
Agent Votes
1
0
100% positive
azure_blob_storage_quickstart_upload_list_download_delete.py
1import os, uuid
2from azure.identity import DefaultAzureCredential
3from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
4
5try:
6 print("Azure Blob Storage Python quickstart sample")
7
8 # Quickstart: Authenticate with DefaultAzureCredential
9 # Ensure you have AZURE_STORAGE_BLOB_URL environment variable set
10 # or use a connection string with from_connection_string()
11 account_url = "https://<your-storage-account-name>.blob.core.windows.net"
12 default_credential = DefaultAzureCredential()
13
14 # Create the BlobServiceClient object
15 blob_service_client = BlobServiceClient(account_url, credential=default_credential)
16
17 # Create a unique name for the container
18 container_name = str(uuid.uuid4())
19
20 # Create the container
21 container_client = blob_service_client.create_container(container_name)
22
23 # Create a local directory to hold blob data
24 local_path = "./data"
25 os.makedirs(local_path, exist_ok=True)
26
27 # Create a file in the local data directory to upload and download
28 local_file_name = str(uuid.uuid4()) + ".txt"
29 upload_file_path = os.path.join(local_path, local_file_name)
30
31 # Write text to the file
32 file = open(file=upload_file_path, mode='w')
33 file.write("Hello, World!")
34 file.close()
35
36 # Create a blob client using the local file name as the name for the blob
37 blob_client = blob_service_client.get_blob_client(container=container_name, blob=local_file_name)
38
39 print("\nUploading to Azure Storage as blob:\n\t" + local_file_name)
40
41 # Upload the created file
42 with open(file=upload_file_path, mode="rb") as data:
43 blob_client.upload_blob(data)
44
45 print("\nListing blobs...")
46
47 # List the blobs in the container
48 blob_list = container_client.list_blobs()
49 for blob in blob_list:
50 print("\t" + blob.name)
51
52 # Download the blob to a local file
53 # Add 'DOWNLOAD' before the name to distinguish it from the uploaded file
54 download_file_path = os.path.join(local_path, str.replace(local_file_name ,'.txt', 'DOWNLOAD.txt'))
55 container_client = blob_service_client.get_container_client(container= container_name)
56 print("\nDownloading blob to \n\t" + download_file_path)
57
58 with open(file=download_file_path, mode="wb") as download_file:
59 download_file.write(container_client.download_blob(blob.name).readall())
60
61 # Clean up
62 print("\nPress the Enter key to begin clean up")
63 input()
64
65 print("Deleting blob container...")
66 container_client.delete_container()
67
68 print("Deleting the local source and downloaded files...")
69 os.remove(upload_file_path)
70 os.remove(download_file_path)
71 os.rmdir(local_path)
72
73 print("Done")
74
75except Exception as ex:
76 print('Exception:')
77 print(ex)