2017-01-25 18 views
0

Azureにスラッシュを含むコンテナを作成できません(バックスラッシュも試しました)。スラッシュのないコンテナを作成すると動作します。Azureにスラッシュを含むコンテナを作成できません

コンテナの名前は、空のルールに準拠しています。コンテナ名の最小長と最大長の間にあり、小文字などです。 「:不正な要求400」

「exampledirectory」の代わりに「例/ディレクトリ」作品でこれをしようと
var exampleDirectory = "example/directory"; 
var cloudStorage = new CloudStorageAndDBConnections(); 
var blobClient = cloudStorage.blobClient; 
var exampleContainer = blobClient.GetContainerReference(exampleDirectory).CreateIfNotExists(); 

私はアズールから、一般的な応答を受け取ります。

私はスラッシュが許可されているので、私は迷ってしまいました状態のドキュメント..任意のヘルプ

感謝を読みました。

答えて

2

この回答は、これがブロブへのURLを構築することを前提としています。

これは仕様です。コンテナ名は常に任意のURLのルートになります。

スラッシュを入力する必要はありません。紺碧がそれを行います。だからあなたのコンテナは、次のブロブを持っていた場合:

  • exampleblob.txt
  • examplesub/exampleblob.txt
  • examplesub/examplesub/exampleblob.txt

あなたコンテナ名はexampledirectoryある場合の場合、次のURLに解決されます。

  • exampleblobservice.blob.core.windows.net/ exampledirectory
  • /exampleblob.txt exampleblobservice.blob.core.windows.net/ exampledirectory/examplesub/exampleblob。

/examplesub/examplesub/exampleblob.txt TXT

  • exampleblobservice.blob.core.windows.net/ exampledirectoryだから、ブロブサービスは、スラッシュで埋め自動的

  • 5

    コンテナ名にスラッシュ(/)が含まれていない可能性があるため、コンテナ名が無効です。スラッシュはブロブ名でのみ使用できます。具体的には、コンテナ名の(here、ルールあたり):

    • コンテナ名は文字または数字で始まる必要があり、そしてには、文字、数字、およびダッシュ含めることができます( - )文字を。

    • すべてのダッシュ( - )文字の直後に文字または数字を付ける必要があります。コンテナ名に連続したダッシュは許可されません。

    • コンテナ名のすべての文字は小文字でなければなりません。

    • コンテナ名は、3〜63文字の長さでなければなりません。

    +0

    ああ、ありがとう - 私はコンテナとブロブの間で混乱しているに違いないと思います。 – Dough

    2

    の概念「ディレクトリ」はAzure Storageには存在しません。コンテナを作成し、そこにファイルをアップロードします。

    "ディレクトリ"構造を作成する場合は、ファイル名に "パス"を追加します。ファイルとパスが格納されているため、自動的に生成されます。

    作成したURL構造を使用してファイルを要求できます。

    var exampleDirectory = "example"; 
    var cloudStorage = new CloudStorageAndDBConnections(); 
    var blobClient = cloudStorage.blobClient; 
    var exampleContainer = blobClient.GetContainerReference(exampleDirectory).CreateIfNotExists(); 
    var fileBase = exampleContainer.GetBlockBlobReference("directory/myfile.extension"); 
    await fileBase.UploadFromStreamAsync(stream); 
    var myUrlWithForwardSlashes = fileBase.Uri.ToString(); 
    
    関連する問題