2

C++ で libcurl を使用して、巨大なファイルをローカル マシンからリモート マシンに転送する必要があります。libcurl に組み込まれている圧縮オプションはありますか。転送するデータが大きいため (100 MB から 1 GB のサイズ)、libcurl 自体でそのようなオプションを使用できるようにした方がよいでしょう。データを圧縮して libcurl 経由で送信できることはわかっています。しかし、それを行うより良い方法があるかどうかを知りたいだけです。

注: 私の場合、多くのクライアント マシンがこのような膨大なデータを一定の間隔でリモート サーバーに転送します。

ありがとう、プラブ

4

2 に答える 2

3

curl_setopt()および optionsに従ってCURLOPT_ENCODING、次を指定できます。

「Accept-Encoding:」ヘッダーの内容。これにより、応答のデコードが可能になります。サポートされているエンコードは、「identity」、「deflate」、および 「gzip」です。空の文字列 "" が設定されている場合、サポートされているすべてのエンコーディング タイプを含むヘッダーが送信されます。

以下にいくつかの例を示します (ブラウザで検索を押して とcompression入力するだけです)。

gzcompress()圧縮されたチャンクを自分で使用して送信することもできます (この方法でタスクを実行します...実際に何が起こっているかをより適切に制御し、使用するアルゴリズムを変更できるようになります)。

于 2012-11-14T13:44:02.570 に答える
0

自分で zlib 圧縮してファイルを送信する必要があります。また、サーバー側でいくつかの変更が必要になる可能性があります。

于 2014-01-08T03:30:38.677 に答える