I was following the instructions from this link. I did all the steps for uploading the file to the storage account starting from running this command
setx AZURE_STORAGE_CONNECTION_STRING "12334455"
Basically, I just copied the code from the Microsoft site for uploading files. But after doing all the requirements as given on the Microsoft site I am still facing some errors. The code I wrote is
import os, uuid
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
try:
print("Azure Blob Storage v" + __version__ + " - Python quickstart sample")
# local_path = "C:\Users\shang\Desktop\Trial"
# 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()
upload_file_path = r"C:\Users\shang\Desktop\Trial\Trial.txt"
local_file_name = "Trial.txt"
# Create a blob client using the local file name as the name for the blob
blob_client = BlobServiceClient.get_blob_client(container="testingnlearning", 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)
# Quick start code goes here
except Exception as ex:
print('Exception:')
print(ex)
Now while running the code I am getting the error
TypeError Traceback (most recent call last)
<ipython-input-3-3a6b42061e89> in <module>
----> 1 blob_client = BlobServiceClient.get_blob_client(container="testingnlearning", blob="Trial.txt")
TypeError: get_blob_client() missing 1 required positional argument: 'self'
Now I don't know of what I am doing wrong. It will be really wonderful if you can tell me on how to upload text files to Azure Storage container.
Thanks in advance.
The reason you're getting the error is because you are not creating an instance of BlobServiceClient
and using it as static here:
blob_client = BlobServiceClient.get_blob_client(container="testingnlearning", blob=local_file_name)
What you would want to do is create an instance of BlobServiceClient
and then use that instance. Something like:
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
blob_client = blob_service_client.get_blob_client(container="testingnlearning", blob=local_file_name)