これは StackOverflow に関する繰り返しの質問であり、既存のすべての提案を閲覧できませんでした。
これが私が達成しようとしていることです:
- 訪問者が私のウェブページに来て、ダウンロードのために非常に大きなファイルを彼に送らなければなりません。
- そのファイルはリモート サーバーにあり、基本認証または Cookie のいずれかが必要です。Cookie/資格情報を所有しているのは私だけです。
- wget を使用してそのファイルをダウンロードし、X-sendfile mod (Apache) を介して訪問者に提供することに成功しましたが、ダウンロードする前にエンド ユーザーを待つ必要があります。
- ダウンロードをできるだけ早く提供したいのですが、これは、私の Web サイトがある種のプロキシまたは何かのように機能することを意味します。
- cURL、fsockopen/feof などで一連のコードを使用してみましたが、たまに Apache がクラッシュしそうになったり、接続をブロックしたり (訪問者がダウンロードを終了しない限り Web サイトを閲覧できなくなったり) したり、 PHPがその巨大なファイルをメモリに入れようとするので、私のリソースを破壊しています。
要約すると:
- できるだけ早くダウンロード用のリモート ファイルを提供できるはずです
- 理想的には、チャンクごと/範囲ごとに提供するのが理想的ですか?
追加情報: PHP 5.2.13、Gentoo、libcurl 5.2.13