我已经编写了用于下载 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 名字一切都很好。
我尝试使用以下代码下载 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.");
}
}
}
输出:
运行成功如下,
该 Blob 已下载并上传到 Azure 门户中同一容器中的另一个 Blob,如下所示。
源斑点:
目的地斑点: