如何解决将平面文件上传到 Azure 存储帐户
我按照此 link 中的说明进行操作。从运行此命令开始,我完成了将文件上传到存储帐户的所有步骤
setx AZURE_STORAGE_CONNECTION_STRING "12334455"
基本上,我只是从 Microsoft 站点复制了用于上传文件的代码。但是在完成了 Microsoft 网站上给出的所有要求之后,我仍然面临一些错误。 我写的代码是
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)
现在运行代码时出现错误
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'
现在我不知道我做错了什么。如果您能告诉我如何将文本文件上传到 Azure 存储容器,那真是太棒了。
提前致谢。
解决方法
您收到错误的原因是您没有创建 BlobServiceClient
的实例并在此处将其用作静态:
blob_client = BlobServiceClient.get_blob_client(container="testingnlearning",blob=local_file_name)
您想要做的是创建一个 BlobServiceClient
实例,然后使用该实例。类似的东西:
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
blob_client = blob_service_client.get_blob_client(container="testingnlearning",blob=local_file_name)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。