Python 正在将平面文件上载到Azure存储帐户
我是按照这里的指示做的。从运行此命令开始,我完成了将文件上载到存储帐户的所有步骤Python 正在将平面文件上载到Azure存储帐户,python,python-3.x,azure,azure-storage-blobs,azure-container-service,Python,Python 3.x,Azure,Azure Storage Blobs,Azure Container Service,我是按照这里的指示做的。从运行此命令开始,我完成了将文件上载到存储帐户的所有步骤 setx AZURE_STORAGE_CONNECTION_STRING "12334455" 基本上,我只是复制了微软网站上传文件的代码。但是在完成了微软网站上给出的所有要求之后,我仍然面临一些错误。 我写的代码是 import os, uuid from azure.storage.blob import BlobServiceClient, BlobClient, ContainerCl
setx AZURE_STORAGE_CONNECTION_STRING "12334455"
基本上,我只是复制了微软网站上传文件的代码。但是在完成了微软网站上给出的所有要求之后,我仍然面临一些错误。
我写的代码是
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'
TypeError回溯(最近一次调用)
在里面
---->1 blob_client=BlobServiceClient.get_blob_client(container=“testingnlearning”,blob=“Trial.txt”)
TypeError:get_blob_client()缺少1个必需的位置参数:“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)
谢谢@Gaurav。我认为命令“setx AZURE\u STORAGE\u CONNECTION\u STRING”12334455已经足够了。现在再问一个问题,如果我在创建blob服务客户端对象时已经给出了连接字符串,我需要运行这个命令吗?“setx AZURE\u STORAGE\u CONNECTION\u STRING”12334455“通过使用此命令,您实际上是在设置环境变量。设置环境变量的好处是,您不必在代码中显式设置连接字符串(以防签入代码或与其他人共享该代码)。因此,这是您的调用。如果您只是想学习一些东西(即,最终您将丢弃此代码),请在代码中保留连接字符串。