我需要使用带有 C++ 的 libcurl 将一个巨大的文件从本地机器传输到远程机器。libcurl 是否有内置的压缩选项。由于要传输的数据很大(大小为 100 MB 到 1 GB),如果我们在 libcurl 本身中提供任何此类选项会更好。我知道我们可以压缩数据并通过 libcurl 发送。但只是想知道有没有更好的方法。
注意:就我而言,许多客户端机器会定期将如此庞大的数据传输到远程服务器。
谢谢, 普拉布
根据curl_setopt()
和 options CURLOPT_ENCODING
,您可以指定:
“Accept-Encoding:”标头的内容。这使得能够对响应进行解码。支持的编码是 "identity"、"deflate" 和 "gzip"。如果设置了空字符串“”,则会发送包含所有支持的编码类型的标头。
以下是一些示例(只需在浏览器中点击搜索并输入compression
),但我不知道 hot 究竟是否有效,以及它是否期望已经压缩过的数据。
您仍然可以gzcompress()
自己使用和发送压缩块(我会以这种方式完成任务......您将更好地控制实际发生的事情,并且您将能够更改使用的算法)。
您需要自己发送带有 zlib 压缩的文件。也许在服务器端需要一些修改。