即使使用有效的连接字符串也得到 "The requested URI does not represent any resource on the server"
Getting "The requested URI does not represent any resource on the server" even with valid connection string
我正在尝试从 Azure 存储帐户中的 Blob 容器中获取所有文件名。
这是我为执行相同操作而编写的代码。
string connectionString = "DefaultEndpointsProtocol=https;AccountName=filesStorage;AccountKey=xxxx;EndpointSuffix=core.windows.net";
string containerName = "firstContainer" + "\" + "secondFolder";
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobs = containerClient.GetBlobs();
foreach (var item in blobs)
{
blobFilesList.Add(item.Name);
}
当我 运行 此代码时,我在 foreach 语句中遇到错误:
InvalidUri
The requested URI does not
represent any resource on the server.
但是我使用的连接字符串是正确的。我可以使用此连接字符串登录到 Azure 存储帐户。
谁能告诉我我做错了什么。我搜索了类似的问题,但我找不到任何相关的解决方案。任何帮助都非常有帮助。非常感谢。
您 运行 陷入此问题的原因是您在创建 blob 容器客户端时包括了虚拟文件夹的名称。它应该只包含 blob 容器名称。
要列出虚拟文件夹中的 blob,您需要在 GetBlobsMethod
.
中将虚拟文件夹的完整路径作为 prefix
参数传递
你能试试这样的东西吗:
string connectionString = "DefaultEndpointsProtocol=https;AccountName=filesStorage;AccountKey=xxxx;EndpointSuffix=core.windows.net";
string containerName = "firstContainer";
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobs = containerClient.GetBlobs(prefix:"secondFolder/");
foreach (var item in blobs)
{
blobFilesList.Add(item.Name);
}
我正在尝试从 Azure 存储帐户中的 Blob 容器中获取所有文件名。
这是我为执行相同操作而编写的代码。
string connectionString = "DefaultEndpointsProtocol=https;AccountName=filesStorage;AccountKey=xxxx;EndpointSuffix=core.windows.net";
string containerName = "firstContainer" + "\" + "secondFolder";
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobs = containerClient.GetBlobs();
foreach (var item in blobs)
{
blobFilesList.Add(item.Name);
}
当我 运行 此代码时,我在 foreach 语句中遇到错误:
InvalidUri
The requested URI does not represent any resource on the server.
但是我使用的连接字符串是正确的。我可以使用此连接字符串登录到 Azure 存储帐户。
谁能告诉我我做错了什么。我搜索了类似的问题,但我找不到任何相关的解决方案。任何帮助都非常有帮助。非常感谢。
您 运行 陷入此问题的原因是您在创建 blob 容器客户端时包括了虚拟文件夹的名称。它应该只包含 blob 容器名称。
要列出虚拟文件夹中的 blob,您需要在 GetBlobsMethod
.
prefix
参数传递
你能试试这样的东西吗:
string connectionString = "DefaultEndpointsProtocol=https;AccountName=filesStorage;AccountKey=xxxx;EndpointSuffix=core.windows.net";
string containerName = "firstContainer";
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobs = containerClient.GetBlobs(prefix:"secondFolder/");
foreach (var item in blobs)
{
blobFilesList.Add(item.Name);
}