web-dev-qa-db-ja.com

Azure Cosmos DBに画像を保存するにはどうすればよいですか?

Cosmos dbにメタデータとともに保存したいPNG画像があります。それを保存する最良の方法は何ですか? Azure BLOBストレージに個別に保存したくないので、データと一緒に保存した方がいいです。

9
Ashish

画像を直接cosmos dbに保存する場合は、DocumentClient.CreateAttachmentAsyncそれを直接格納するメソッド。

using (FileStream fileStream = new FileStream(@".\something.pdf", FileMode.Open))
{
    //Create the attachment
    Attachment attachment = await client.CreateAttachmentAsync("dbs/db_rid/colls/coll_rid/docs/doc_rid/attachments/", 
    fileStream, 
    new MediaOptions 
    { 
       ContentType = "image/jpeg", 
       Slug = "myImage.jpeg" 
    });
}

外部に保存された添付ファイルを管理するために本質的に組み込まれているものはありません。むしろ、それらを保存して参照するのはあなた次第です。

最も一般的なパターンは、特定の添付ファイルへのURLとドキュメント(Azure Storageのblobなど)を格納することです。

注:通常、画像をCosmosDBに追加します。クエリのコストが高くなります。推奨される方法は、Azure Blobにイメージを保存し、Cosmos DBドキュメントにリンクを追加することです。これにより、Azure CDNなどを利用して、モバイルでのイメージの読み込みを高速化できます。

12
Sajeetharan