すでに圧縮されている既存の素材 (Node を使用) から長さ不明の ZIP アーカイブをオンザフライで作成します。ZIP アーカイブでは、ファイルが保存されるだけです。ZIP は、単一のコンテナを持つためにのみ使用されます。そのため、作成された ZIP ファイルをキャッシュしても意味がありません。実際の計算は必要ありません。
これまでのところ、OK。ダウンロードの再開を許可したいので、Accept-Range、Range、および Content-Range HTTP ヘッダーについて読んでいます。ダウンロードが壊れているクライアントは、次のように制限のない範囲を要求しますRange: bytes=8000000-
。
どう答えればいいですか?RFC 2616 § 14.16に従って、私の回答には Content-Range ヘッダーを含める必要があります。
byte-ranges-specifier 値 (セクション 14.35.1 を参照) とは異なり、byte-range-resp-spec は 1 つの範囲のみを指定する必要があり、範囲の最初と最後のバイトの両方の絶対バイト位置を含める必要があります。
したがって、「位置Xから始まるすべて」を送信することはできません。既知のサイズの一部のみを送信するか、事前に長さを計算して、送信された最後のバイトも指定する必要があります。どちらの考えも私の状況には都合が悪い。他に可能性はありますか?