質問

次のコードは、「createifnotexist」メソッド呼び出しにエラーをスローします。 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.]

「画像」コンテナは存在しませんが、エラーをスローする代わりに作成することを期待していました。私は何が間違っているのですか?

HTTPSではなくHTTPを試しましたが、結果は同じエラーです。

役に立ちましたか?

解決

別の構文を使用しなければならないことがわかりました

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