Вопрос

Следующий код бросает ошибку в вызове метода «CreateiFnotexist». Я пытаюсь подключиться к хранению My Azure Blob и создать новый контейнер под названием «Изображения»

var storageAccount = new CloudStorageAccount(
    new StorageCredentialsAccountAndKey("my_account_name", "my shared key"),
    "https://blob.core.windows.net/",
    "https://queue.core.windows.net/",
    "https://table.core.windows.net/"
);
var blobClient = storageAccount.CreateCloudBlobClient();
var blobContainer = blobClient.GetContainerReference("images");
blobContainer.CreateIfNotExist();

Ошибка:

[StorageClientException: The requested URI does not represent any resource on the server.]

Контейнер «Изображения» не существует, но я ожидал, что он будет создан вместо ошибки, которую нужно бросить. Что я делаю неправильно?

Я попробовал HTTP вместо HTTPS, но результат является той же ошибкой.

Это было полезно?

Решение

Я понял, что должен использовать другой синтаксис

var storageAccount = new CloudStorageAccount(
   new StorageCredentialsAccountAndKey("my_account_name", "my shared key"));
var blobClient = storageAccount.CreateCloudBlobClient(); 
var blobContainer = blobClient.GetContainerReference("images"); 
blobContainer.CreateIfNotExists(); 

Обратите внимание, как пропускают конечные точки. Очевидно, что CloudBlobClient может автоматически выяснить соответствующий URI.

Другие советы

Вы уверены, что имя учетной записи и общий ключ верны? Вы можете попробовать установить Fiddler, чтобы посмотреть на трафик HTTP, чтобы убедиться, что нет ничего подозрительного.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top