Ruby on Rails 4.2を使用してリモートストレージサービス(s3 :-)ではなく)からクライアントにファイルをストリーミングしようとしています。ruby/rails 4/unicorn/nginxのクライアントへのリモートファイルのストリーム
私のサーバーは、クライアント要求を認証するために、クライアントの要求を認証するために、リモートのストレージサービスへの要求を構築する必要があります。そのサービスへのすべての要求は、カスタムヘッダーパラメータを使用して認証される必要があります。これにより、単純なredirect_toを実行することができなくなり、クライアントがファイルを直接ダウンロードできるようになります(ただし、実際にはレールを使って可能かどうかを教えてください)。また、私はクライアントのために隠されたファイルのURLを保持したい。
今まで私はZipLineという名前の宝石を使っていましたが、クライアントに送信する前にリモートファイルをまだバッファリングしているので、これも機能しません。私はunicorn/nginxを使用しているので、これはどちらかの設定が適切なストリーミングを妨げている可能性もあります。私は設定/ unicorn.rbになく、無駄に
listen 3000, tcp_nopush: false
を追加しようとしているレールあたりのドキュメントの指示として
。
解決策は、リモートファイルを一定期間ローカルにキャッシュし、そのファイルを提供することです。私はどのように実現するか)
1:これは
ので、合計するいくつかのものを簡単にするだけでなく、など、キャッシュの有効期限のトリガー権を設定、同期、リモートおよびキャッシュされたファイルを維持するような新しい頭痛を作成します上記のシナリオ?
2)これがインテリジェントで効率的な方法でない場合は、リモートコピーをキャッシュするだけですか?
3)特定のシナリオでのあなたの経験/推奨事項は何ですか?
私は、さまざまなソリューションがウェブ全体に散在していますが、完全な解決策を呼び起こすものはありません。
ありがとうございます!
こんにちはCorstiaan、おそらく今までに解決策が見つかりました。私は同じ問題を抱えています。ここに私のスレッドです:https://stackoverflow.com/questions/45714918/download-as-attachment-not-streamingしかし、それは本当に飛行機で私のために働くziplineに関して。私はPaperclipとS3 – Maxence