2017-02-06 8 views
0

紺碧のBLOBの残りのAPIを使用してフォルダを作成したいと同時に、フォルダが存在するかどうかを確認したい。Azure Rest API。フォルダを作成してフォルダが存在するかどうかを確認する方法は?

Hierarchy: 

arjun/images/ 
arjun/Videos/001.avi 
arjun/Vidos/002.avi 
img001.jpg 

私は例"arjun/images/"のパス でフォルダを作成するために、PUTリクエストを送信しようとした:

  1. これはフォルダが、その空ではありませんが作成されます。
  2. フォルダ内に名前のない空のファイルが作成されています。今

私はフォルダが存在するかどうかを確認したいとき、これが正しい場合でも、別の問題がある:

  1. 私は、フォルダのパスとして接頭辞リストブロブコールを送ります。
  2. 問題は、空のフォルダと存在しないフォルダの区別です。要求が正しく形成されると、常に200 Ok messageBlob element emptyとなるためです。

したがって、フォルダが存在しないか、空であるかどうかを判断できません。つまり、両方が成功するが、両方が は、任意のコンテンツが含まれていないとして、空のレスポンスボディを持つことになり、プレフィックス"arjun/xyz/""arjun/images/ とブロブリスト要求

。しかし、実際には最初のフォルダxyzは存在しません と2番目のフォルダは存在しますが空です。

+0

私は混乱しています:「arjun」はコンテナ名ですか、それともBLOBストレージアカウント名ですか? *フォルダがないことを覚えています* - コンテナだけです。 –

答えて

2

ブロブサービスはフラット格納方式なく、階層 スキームに基づいています。

出典:Blob Names

これは明らかに存在Azureストレージブロブのために実際になしフォルダ階層で、「フォルダ」の仮想階層を作成するためだけの仮想ディレクトリであることを示しています。

また、Microsoftストレージエクスプローラを使用して仮想ディレクトリを作成しようとすると、仮想ディレクトリが作成されるまでその仮想ディレクトリが存在しないことが強調表示されます実際にはブロブの名前の一部にすぎません。

結論として、ブロブをアップロードせずに「作成」すると、仮想ディレクトリは存在しません。

enter image description here

+0

この例は本当に助けになりました。これを承認済みとしてマークします。私はあなたが正しいと思う、私はAmazonと混同していた。 –

+0

うれしいことを喜んで、あなたは歓迎です – juvchan

2

デビッドMakogonとjuvchanはAzureストレージブロブのためのフォルダ階層が存在しないことに言及したように。 「フォルダー」にブロブがない場合は、「フォルダー」が存在しないことと同じ意味です。 「フォルダー」にブロブがある場合、リストブロブAPI応答本体からリストブロブ数を取得できます。したがって、フォルダが存在しないか空であるかどうかを心配する必要はありません。両方とも、フォルダが存在しないことを意味します。

関連する問題