2017-11-15 15 views
0

メタデータプロパティを設定して画像用のストレージアカウントを作成し、多数の画像をアップロードしました。 (以下に示すように)コンテナメタデータを含むブロブ

public async Task<bool> UploadFileToBlob(CustomFile file) 
    { 
     // Get Blob Container 
     CloudBlobContainer container = BlobUtilities.GetBlobClient.GetContainerReference("documents"); 
     container.CreateIfNotExists(); 

     // Get reference to blob (binary content) 
     CloudBlockBlob blockBlob = container.GetBlockBlobReference(file.FileName); 

     // set its properties 
     blockBlob.Properties.ContentType = file.FileMime; 
     blockBlob.Metadata["tag"] = "computer"; 
     : 
     : 
} 

メタデータプロパティと同じタグ名でアップロードされた複数の画像が存在する可能性があります。

今、私は、同じタグ名でマップされたブロブコンテナから画像のリストを取得する必要があります(私はすべてのBLOBコンテンツをダウンロードするサンプルを見ましたが、特定のタグ名これは、アップロードされたファイルのメタデータに設定された)

おかげ

答えて

0

サーバーのクエリでメタデータをフィルタリングするためにサポートされていません。 list all the blobsBlobListingDetails.Metadataが必要で、クライアント側でタグ名をフィルタリングする必要があります。

0

複数の画像がメタデータプロパティと同じタグ名でアップロードされている可能性があります。今、同じタグ名でマップされているブロブコンテナからのイメージのリストを取得するだけです。

Zhaoxing Luは、あなたの目的を達成するためのビルドイン機能はないと回答しました。私の理解あたりのあなたのブロブ名にパス情報を含めることができ、次のように、あなたがtagカテゴリに基づいて、仮想ディレクトリ構造を作成することができます。

https://{accountname}.blob.core.windows.net/{container-name}/{tag01}/photo1.jpg 
https://{accountname}.blob.core.windows.net/{container-name}/{tag01}/photo2.jpg 
https://{accountname}.blob.core.windows.net/{container-name}/{tag02}/photo3.jpg 

その後、あなたはListBlobsを活用してに次のようにprefixパラメータを指定することができますあなたのブロブを取得:

var blockBlobs = container.ListBlobs(prefix: "tag01").OfType<CloudBlockBlob>(); 
関連する問題