404(指定的blob不存在。)

问题描述 投票:0回答:1

我已经编写了用于下载 blob 并将其上传到容器的代码。 我遇到这个问题了。

Azure.RequestFailedException:服务请求失败。状态:404(指定的 blob 不存在。)错误代码:BlobNotFound 标头:传输编码:分块 x-ms-request-id:36ac3732-c01e-0039-7b0c-d5881a000000 x-ms-client-request-id:348fe07c -b87e-409d-9075-8fac337b5e12 x-ms-版本:2021-10-04 x-ms-错误代码:BlobNotFound 日期:2023 年 8 月 22 日星期二 15:19:10 GMT 服务器:Windows-Azure-Blob/1.0 Azure.Storage.Blobs.BlobRestClient.d__11.MoveNext() 处的 Microsoft-HTTPAPI/2.0 --- 抛出异常的上一个位置的堆栈跟踪结束 --- 位于 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务) 在 Azure.Storage.Blobs.Specialized.BlobBaseClient.d__123.MoveNext() 你能帮忙解释一下这个问题的原因吗即使我已经处理了检查以验证 blob 是否存在,也会出现这种情况吗?

if (container.GetBlockBlobReference(apkBlobPath).Exists())

注意: 一切正确,包括 Blob 名称、容器名称和存储帐户。

我在互联网上检查过,blob 名称或容器名称可能存在问题。但是,我的 blob 名字一切都很好。

c# azure azure-blob-storage blob http-status-code-404
1个回答
0
投票

我尝试使用以下代码下载 Blob 并将其上传到 Azure 存储中的容器。

代码

using Azure.Storage.Blobs;
using System;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        string connectionString = "<connec_string>";
        string containerName = "<container_name>";
        string apkBlobPath = "<sourceblob_name>";
        string destinationBlobName = "<destinationblob_name>"; 

        BlobServiceClient serviceClient = new BlobServiceClient(connectionString);
        BlobContainerClient containerClient = serviceClient.GetBlobContainerClient(containerName);

        if (containerClient.GetBlockBlobClient(apkBlobPath).Exists())
        {
            BlockBlobClient sourceBlobClient = containerClient.GetBlockBlobClient(apkBlobPath);
            BlobDownloadInfo blobDownloadInfo = await sourceBlobClient.DownloadAsync();
            BlockBlobClient destinationBlobClient = containerClient.GetBlockBlobClient(destinationBlobName);
            await destinationBlobClient.UploadAsync(blobDownloadInfo.Content);

            Console.WriteLine("Blob download and upload completed successfully.");
        }
        else
        {
            Console.WriteLine("Source blob does not exist.");
        }
    }
}

输出

运行成功如下,

enter image description here

该 Blob 已下载并上传到 Azure 门户中同一容器中的另一个 Blob,如下所示。

源斑点

enter image description here

目的地斑点

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.