Python Set_Blob_元数据和自位置参数
最后一天我一直在玩弄Python,试图了解Azure Blob存储的好处及其工作原理。我尝试使用以下脚本向现有blob添加元数据:Python Set_Blob_元数据和自位置参数,python,azure-storage-blobs,Python,Azure Storage Blobs,最后一天我一直在玩弄Python,试图了解Azure Blob存储的好处及其工作原理。我尝试使用以下脚本向现有blob添加元数据: blob_client.set_blob_metadata( account_url = "https://storage01.blob.core.windows.net/", container_name="container",
blob_client.set_blob_metadata(
account_url = "https://storage01.blob.core.windows.net/",
container_name="container",
blob_name="template.json",
metadata={'metadata1': '1111'})
但是它失败了,错误消息为:TypeError:set_blob_metadata()缺少1个必需的位置参数:“self”
我不知道为什么?我在Github上检查了几个样本 没有你的完整剧本,我只能猜测。 您必须创建
BlobClient
的实例才能调用set\u blob\u metadata
方法。
这应该是这样的:
from azure.storage.blob import BlobClient
blob_client = BlobClient.from_blob_url(blob_url="https://account.blob.core.windows.net/container/blob-name")
blob_client.set_blob_metadata(
account_url = "https://storage01.blob.core.windows.net/",
container_name="container",
blob_name="template.json",
metadata={'metadata1': '1111'})
我猜您只是创建了一个BlobClient
的引用,而不是一个实例,如下所示:
从azure.storage.blob导入BlobClient
blob_client=blob客户端#这是错误的
blob_client.set_blob_元数据(
帐户url=”https://storage01.blob.core.windows.net/",
container_name=“container”,
blob_name=“template.json”,
元数据={'metadata1':'1111'})
是的,这就是问题所在。但不知何故,它仍然显示了一条错误消息:未找到资源。通过打开URL对其进行双重检查,最终得到了SAS签名,这起到了作用。
from azure.storage.blob import BlobClient
sas_url = "https://scalesetdiag.blob.core.windows.net/container/document.txt?sv=2019-02-02&ss=bfqt&srt=sco&sp=rwdlacup&se=2020-01-01T17:09:21Z&st=2019-12-28T09:09:21Z&spr=https,http&"
blob_client = BlobClient.from_blob_url(sas_url)
blob_client.set_blob_metadata(
metadata={'metadata1': '1111'})
从azure.storage.blob导入BlobClient
sas_url=“”
blob\u client=BlobClient.from\u blob\u url(sas\u url)
blob_client.set_blob_元数据(
元数据={'metadata1':'1111'})