azure - 从本地环境连接到 Azure Blob

标签 azure .net-core azure-blob-storage

问题: 我正在关注 Azure 快速入门 tutorial至此。我已创建 Azure 帐户和存储帐户。

当尝试执行简单的快速入门时,我在第一次调用 Azure 云时遇到错误。此调用

Azure.Storage.Blobs.BlobServiceClient.CreateBlobContainerAsync(String blobContainerName, PublicAccessType publicAccessType, IDictionary`2 metadata, CancellationToken cancellationToken)

抛出此异常:

(No such host is known.) ---> Azure.RequestFailedException: No such host is known.

代码再简单不过了,所以我有两个问题:

  1. 是否可以针对 Azure Blob 数据库运行本地代码?

  2. 如果是,配置、版本或某些怪癖可能有什么问题?

代码:

        string connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");

        BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

        string containerName = "quickstartblobs" + Guid.NewGuid().ToString();
        //Error occurs here.
        BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);

假设我设置了环境变量并完全正确地使用了连接键,那么什么可能导致此错误?

这是我在 DotNetCore 3.1 上使用的客户端库: 包括=“Azure.Storage.Blobs”版本=“12.4.2”

以下是我的 Azure 帐户的 Blob 存储应用程序的设置。 Azure Blob Storage Settings

我是云计算的新手,所以请温柔一点。

最佳答案

Is it possible to run local code against an Azure Blob database?

是的,当然。

我可以重现您的错误。问题应该出在您的存储帐户的连接字符串上。

我可以将数据从 azure 存储帐户下载到本地:

string connectionString = "DefaultEndpointsProtocol=https;AccountName=0730bowmanwindow;AccountKey=xxxEndpointSuffix=core.windows.net";
BlobServiceClient myClient = new BlobServiceClient(connectionString);
var container = myClient.GetBlobContainerClient("video");
var blockBlob = container.GetBlobClient("test.txt");
blockBlob.DownloadTo("C:\\Users\\bowmanzh\\Desktop\\123.txt");
Console.WriteLine("Hello World!");

请从这里复制连接字符串,确保帐户名等没有问题:

enter image description here

如果还是不行,您可以尝试使用另一台机器。你的代码看起来没有问题。

关于azure - 从本地环境连接到 Azure Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61994665/

相关文章:

python - 如何在azure中获取容器中所有文件的完整路径

node.js - 是否可以向 azure Blob 添加过滤器

asp.net-mvc - 从 ADFS 检索用户 ID 声明

sql-server - 来自其他租户的应用程序的 Azure SQL AAD 身份验证

file-upload - .NET Core 3 和 IIS Express maxAllowedContentLength 不起作用

c# - 在 cors 主机中设置时,是否需要在 C# 中定义协议(protocol)

winforms - ClickOnce 会移植到 .NET Core 3 或 .NET 5 以及 WinForms 吗?

azure - 文档数据库 : get all documents of same entity type

azure - 如何使用Azure ARM模板将现有虚拟网络添加到Azure SQL数据库中?

c# - Azure Data Lake Gen2 - 如何使用 C# 将文件从文件夹移动到另一个文件夹