GridFS を使用して一連の PDF ファイルを MongoDB に挿入しようとしていますが、次のメッセージMongoGridFSException
が表示されます。
私は非常に単純な CLI スクリプトを使用しています。
$it = new DirectoryIterator(__DIR__ .'/files');
while ($it as $file) {
$grid->storeFile($file->getPathname(), array('metadata' => $metadata));
}
GridFS に関するドキュメントが不足していることは気がかりです。MongoGridFSとstoreFile()の例はすべて、単純なファイル名を最初の引数として示しているだけです。データがこのファイル名から取得される場合、スクリプトはどの basePath を想定しますか ( cwd
、__DIR__
またはまったく異なるものですか?)、または絶対パスを追加できますか (エラーメッセージから判断すると、おそらくそうではありません)?
代わりに使用することを考えていましたstoreBytes(file_get_contents($file->getPathname())
が、ファイル名が関連付けられていない場合、ファイルを取得するにはどうすればよいですか? 2 番目の引数 (options-array) にファイル名を追加しますか?
また、保存されているファイルの鉱山/タイプを知りたい場合、メタデータで手動で指定する必要がありますか?それとも、ファイルを挿入するときに自動的に決定されますか?
TL;DR: GridFS の操作方法がわかりません。また、php-docs の品質も良くありません。少なくとも、誰かがより良い例/ドキュメントを指摘できますか?