2017-05-10 15 views
3

JAVAのspringdataのGridFsTemplateを使用して、DocumentDB用のMongoDB APIを使用しています。Azure DocumentDBのMongoAPIでのGridFSのサポート

MongoDBのGridFS部分を使用して大きなファイルを管理しようとするとエラーが発生します。

ファイルを作成してメタデータを検索できますが、ファイルの内容を取得できません。次のエラーが返されます。

Error: error: { 
    "_t" : "OKMongoResponse", 
    "ok" : 0, 
    "code" : 8, 
    "errmsg" : "The value '/media/7hsUAJOI2QsBAAAAAAAAAEeWwrcB' specified for query '$resolveFor' is invalid.\r\nActivityId: a68945e8-0000-0000-0000-000000000000", 
    "$err" : "The value '/media/7hsUAJOI2QsBAAAAAAAAAEeWwrcB' specified for query '$resolveFor' is invalid.\r\nActivityId: a68945e8-0000-0000-0000-000000000000" 
} 

は、私は同じエラーがRobomongoを使用してfs.chunksコレクションを点検しようとしてもらいます。

私がコレクションを作成できると思う理由は、AzureのWebインターフェイスでブラウズ機能を使用しているため、fs.chunksには多くのチャンクの代わりに1つのレコードしかないようです。だから、おそらく記憶が問題です。

標準のMongoDBを使用している場合、これはすべて正常に動作します。

これはエラーなしで完了するファイルを保存するためのコードです。ここ

gridFsTemplate.store(content, filename, contentType, metadata); 

そして

は内容

//this works 
GridFSDBFile data = gridFsTemplate.findOne(query); 
ByteArrayOutputStream out = new ByteArrayOutputStream(); 
if (data != null) 
{ 
    //this results in Exception with the same message as the error above 
    data.writeTo(out); 
} 

答えて

1

DocumentDBとMongoDBの間の違いを紹介し、第三者blogがありますが、それを見つけて取得するためのコードである、セクションBinary Large Object (BLOB) Storageに注意してください。そして今、Azure DocumentDBは&にアップグレードされました。Azure Cosmos DBは、ドキュメント、キー値、グラフ、BLOBではなく、マルチモデルデータベースです。ですから、DocumentDBまたはCosmos DB via MongoDB APIをJSONストアシステムとしてのみ使用することを検討してください。ファイル用のストレージを使用する場合は、Azure BLOBストレージを検討してください。

希望します。

+1

ありがとうございます。しかし、MongoDB APIのサポートと[広告](https://azure.microsoft.com/en-us/blog/documentdb-api-for-mongodb-now-generally-available/)の考え方は、開発者がコードを変更することなく両方のDBをサポートします。これには多くの理由があります。 ところで、DocumentDBエミュレータを使用している場合、上記のエラーは発生しません。だから、おそらくエミュレータが先にあり、修正が来ている... – jbteros

+0

私はあなたの答えを受け入れるだろう、私は変更することができますか、または問題を解決することができる変更を構成することはできません。基本的にはまだサポートされていません。そして、あなたは別の方法を提供しました。再度、感謝します。 – jbteros

+0

Mongo DBを介してCosmos DBでサポートされていないものを示すサポート・マトリックスはどこにありますか? 私のアプリケーションでGridFSを使用しているこの問題の最悪の部分は、Cosmos DBがファイルを正常に格納したように見せて、メタデータを格納してから実際にファイル。少なくとも、別個のメソッドへの呼び出しで、APIはうまくいけない結果を返します。 Cosmos DBがサポートしている、サポートしていないMongo APIのどの部分がはっきりとわかるのですか?それ以上のサポートはありますか? –

関連する問題