1

私は Symfony2.8 プロジェクトに取り組んでおり、Gaufrette を使用して AWS S3 バケットに保存したファイルを管理しています。ファイルを非公開にする必要があるため、S3 パブリック URL を使用する代わりに、ファイルを S3 からエンド ユーザーにストリーミングしようとしています。StreamWrapper と BinaryFileResponse で動作していますが、信じられないほど遅いです。2.5 MB のファイルは 20 秒以上かかり、それよりも大きいファイルは Web サーバーの 30 秒の時間制限のために失敗します。私は何を間違っていますか?

私のコントローラークラスの関連アクションのコードは次のとおりです。

/**
 * @Route("/docs/get/{file}", name="document_read")
 */
public function documentReadAction(Request $request, $file)
{
    $filesystem = $this->container->get('knp_gaufrette.filesystem_map')->get('docs');
    $map = StreamWrapper::getFilesystemMap();
    $map->set('docs', $filesystem);
    $filepath = 'gaufrette://docs/'.$file;

    return new BinaryFileResponse($filepath);
}
4

0 に答える 0