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

创建Azure追加Blob时遭遇“指定Blob不存在”错误求助

解决Azure Append Blob追加时出现的“The specified blob does not exist”错误

问题根源在于Append Blob的特性差异:普通Blob的Upload方法会自动创建不存在的Blob,但Append Blob的AppendBlock方法要求Blob必须已存在,直接调用会触发404错误。

修改你的AppendTextToAzureBlob方法,在追加数据前先调用CreateIfNotExists()创建目标Append Blob(不存在时自动创建):

public static String AppendTextToAzureBlob(String aText)
{
    String lBlobName = $"appendblob_{DateTime.UtcNow:yyyyMMddHH}";

    try
    {
        // 1. 确保容器存在
        BlobServiceClient lBlobServiceClient = new BlobServiceClient(GetConnectionString());
        BlobContainerClient lBlobContainerClient = lBlobServiceClient.GetBlobContainerClient(_BlobContainerName);
        lBlobContainerClient.CreateIfNotExists(PublicAccessType.BlobContainer);
        
        // 2. 获取Append Blob客户端,先创建Blob(如果不存在)
        AppendBlobClient lBlobClient = lBlobContainerClient.GetAppendBlobClient(lBlobName);
        // 关键步骤:创建不存在的Append Blob
        lBlobClient.CreateIfNotExists();
        
        // 3. 追加日志文本
        using MemoryStream lStream = new(Encoding.UTF8.GetBytes(aText));
        lStream.Position = 0;
        var lResult = lBlobClient.AppendBlock(lStream);
        return "OK";
    }
    catch (Exception ex)
    {
        return ex.Message;
    }
}

对比你之前正常运行的SaveTextToAzureBlob方法:普通BlobClient的Upload方法内部会自动处理不存在Blob的创建逻辑,但AppendBlobClient没有这个自动创建机制,必须显式调用创建方法后才能执行追加操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:20:59