cna*_*cna 3 python azure azure-blob-storage
我正在尝试将新的 json 行附加到容器中现有的 json 文件中。下面是我的代码:
import json
import os
from azure.storage.blob import (
BlockBlobService, AppendBlobService
)
from DBConnection import account_name, container_name, account_key
def getData(self, resp, filename):
blobService = BlockBlobService(account_name=account_name, account_key=account_key)
appendblobservice = AppendBlobService(account_name=account_name, account_key=account_key)
resp = json.dumps(self.resp) #CONVERT FROM DICT TO STR
filename = self.filename + ".json" #eg: 'ww1_abcded_202002031100.json'
file_exist = blobService.exists(container_name, filename)
if file_exist is False:
print("inside IF")
blobService.create_blob_from_text(container_name, filename, self.resp)
else:
print("Inside else")
appendblobservice.append_blob_from_text(container_name, filename, self.resp)
print("2345675t43")
Run Code Online (Sandbox Code Playgroud)
我遇到错误append_blob_from_text并产生以下错误:
azure.common.AzureConflictHttpError: blob 类型对此操作无效。错误代码:InvalidBlobType
InvalidBlobTypeBlob 类型对此操作无效。
我相信您收到此错误是因为您正在调用仅适用Append Blob于Block Blob.
您的以下代码创建了一个 Block Blob:
blobService.create_blob_from_text(container_name, filename, self.resp)
Run Code Online (Sandbox Code Playgroud)
但是,您正在尝试执行仅附加 blob 操作:
appendblobservice.append_blob_from_text(container_name, filename, self.resp)
Run Code Online (Sandbox Code Playgroud)
因此,您会收到此错误。
两种可能的解决方案:
create_blob创建一个空的追加 blob,然后使用 方法追加内容append_blob_from_text。get_blob_to_text方法下载 blob 的内容,附加新内容,然后使用create_blob_from_text方法重新上传 blob。| 归档时间: |
|
| 查看次数: |
2800 次 |
| 最近记录: |