You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向Azure现有Blob追加文本数据?遇InvalidBlobType错误求解

解决Azure Blob追加内容时的InvalidBlobType错误

错误原因

append_block()方法仅支持追加型Blob(Append Blob),而你当前的LIST.txt是默认创建的块Blob(Block Blob),块Blob不支持追加块操作,因此触发InvalidBlobType错误。

解决方案

方案1:改用追加型Blob(推荐,适合频繁追加场景)

追加型Blob专为日志、记录这类需要持续追加的场景设计,操作效率更高,步骤如下:

  • 若原Blob是块Blob,先迁移现有数据到新的追加型Blob
  • 后续使用append_block()完成追加操作

代码示例:

# 获取原块Blob的数据
original_blob_client = container_client.get_blob_client("LIST.txt")
original_data = b""
if original_blob_client.exists():
    original_data = original_blob_client.download_blob().readall()

# 创建追加型Blob(不存在则新建)
append_blob_client = container_client.get_blob_client("LIST.txt")
if not append_blob_client.exists():
    append_blob_client.create_append_blob()
    # 写入原数据
    if original_data:
        append_blob_client.append_block(original_data)

# 追加新内容
new_value = "2200\n"
append_blob_client.append_block(new_value.encode('utf-8'))

# 验证内容并检查值是否存在
downloaded_content = append_blob_client.download_blob().readall().decode('utf-8')
ans_list = downloaded_content.splitlines()
if "2200" in ans_list:
    print("Num Exists")

注:如果原LIST.txt已存在且为块Blob,需要先删除原Blob,再创建同名的追加型Blob,避免冲突。

方案2:基于块Blob实现追加(适合小文件/偶尔追加场景)

如果不想切换Blob类型,可通过「下载原内容→拼接新内容→上传覆盖」的方式模拟追加:

blob_client = container_client.get_blob_client("LIST.txt")

# 下载现有内容
existing_content = ""
if blob_client.exists():
    existing_content = blob_client.download_blob().readall().decode('utf-8')

# 拼接新内容(保留换行格式)
new_value = "2200\n"
updated_content = existing_content + new_value

# 上传覆盖原Blob
blob_client.upload_blob(updated_content, overwrite=True)

# 验证并检查值
downloaded_content = blob_client.download_blob().readall().decode('utf-8')
ans_list = downloaded_content.splitlines()
if "2200" in ans_list:
    print("Num Exists")

注:该方式在Blob内容较大时效率低下,且多进程并发修改可能导致数据冲突。

关键注意事项

  • 追加型Blob单块最大支持4000MiB,总容量最大190.7TiB,适合高频追加场景
  • 块Blob的模拟追加方式仅适合小文件或低频次修改场景,避免频繁大文件下载上传

内容的提问来源于stack exchange,提问作者Abhishek Rai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:51:36