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