用于分段下载的Linux库

发布于 2025-01-02 07:58:00 字数 1539 浏览 1 评论 0 原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我们的影子 2025-01-09 07:58:00

任何支持自定义 HTTP 标头的库(例如 libcurl)都可以使用。

您需要生成多个线程。在每个线程中,设置请求标头中的 Range 字段以指定该线程需要下载文件的哪一部分。

特别是对于 libcurl ,您可以使用 CURLOPT_RANGE 选项来执行部分操作文件下载。

请参阅 libcurl文档

CURLOPT_RANGE

传递一个 char * 作为参数,该参数应包含您想要的指定范围。它的格式应为“XY”,其中 X 或 Y 可以省略。 HTTP 传输还支持多个间隔,用逗号分隔,如“XY,NM”。使用这种多个间隔将导致 HTTP 服务器分段发送响应文档(使用标准 MIME 分离技术)。对于 RTSP,范围的格式应遵循 RFC 2326 第 12.29 节。对于 RTSP,不允许使用字节范围。相反,范围应以 npt、utc 或 smpte 格式给出。

将 NULL 传递给此选项以禁用范围。

范围仅适用于 HTTP、FTP、FILE(自 7.18.0 起)和 RTSP(自 7.20.0 起)传输。

Any library that supports custom HTTP headers, such as libcurl, will work.

You need to spawn several threads. In each thread, set the Range field in you request header to specify which part of the file this thread needs to download.

And for libcurl specially, you can use the CURLOPT_RANGE option to do partial file download.

See the description form libcurl's documentation.

CURLOPT_RANGE

Pass a char * as parameter, which should contain the specified range you want. It should be in the format "X-Y", where X or Y may be left out. HTTP transfers also support several intervals, separated with commas as in "X-Y,N-M". Using this kind of multiple intervals will cause the HTTP server to send the response document in pieces (using standard MIME separation techniques). For RTSP, the formatting of a range should follow RFC 2326 Section 12.29. For RTSP, byte ranges are not permitted. Instead, ranges should be given in npt, utc, or smpte formats.

Pass a NULL to this option to disable the use of ranges.

Ranges work on HTTP, FTP, FILE (since 7.18.0), and RTSP (since 7.20.0) transfers only.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文