mongodb を使用して php で Web アプリケーションをコーディングしていますが、非常に大きなファイル (1gb) を gridfs で保存したいと考えています。
2 つの問題があります。最初にタイムアウトが発生し、MongoGridFS クラスのカーソル タイムアウトを設定する方法がわかりません。
<?php
//[...]
$con = new Mongo();
$db = $con->selectDB($conf['base']);
$grid = $db->getGridFS();
$file_id = $grid->storeFile($_POST['projectfile'],
array('metadata' => array('type' => 'release',
'version' => $query['files'][$time]['version'],
'mime' => mime_content_type($_POST['projectfile']),
'filename' => file_name($projectname).'-'.file_name($query['files'][$time]['version']).'.'
.getvalue(pathinfo($_POST['projectfile']), 'extension'))), array( 'safe' => false ));
//[...]
?>
次に、リクエストをバックグラウンドで実行できたのでしょうか。このクエリでファイルを保存すると、実行がブロックされ、タイムアウトによりエラー 500 が発生します
PHP 致命的なエラー:「ファイルを保存できませんでした: カーソルがタイムアウトしました (タイムアウト: 30000、残り時間: 0:0、ステータス: 0)」というメッセージを含む例外「MongoGridFSException」がキャッチされませんでした