私は以下を試してみます:
- フォルダをアップロードしてください(例:絵)サーバー上
- サーバーが入力ストリームを圧縮してファイルに保存するようにします。
重要なのは1)段階は圧縮されていない接続速度が非常に速く、クライアント側の圧縮が遅くなると思うからです。さらに、サーバー確かに圧縮せずにディレクトリを保存するのに十分なスペースが必要です。理想的には、サーバーの圧縮が同時に発生します。
マルチスレッドである限り、実際の圧縮アルゴリズムにはあまり興味がありません。
ベストアンサー1
予備の注意:画像がすでに圧縮されていると仮定すると(JPEG、PNG、WEBP...)、どの圧縮を使用しても、空間的には何もできません。。単に削減するエントロピーはありません。したがって、計画全体が失敗する可能性があります。
一般的なアプローチは次のとおりです。テープアーカイブ形式(.tar)。ディレクトリを単一のTARストリームにシリアライズし、インターネットを介して(たとえばSSHを使用して)ディレクトリを転送してからターゲットに圧縮できます。
また、SSHに組み込まれているトランスポート圧縮をオフにする必要があります。それ以外の場合は、最初に送信するホストで圧縮を実行しなくても意味がありません。
それはまるで
tar c Pictures/ | ssh -o "Compression=no" user@server "zstd -15 -T0 > Pictures.tar.zstd"
zstd -T0
zstandard 圧縮にはできるだけ多くの CPU コアを使用します。これが-15
圧縮レベルです。 15は非常に残酷で、-3
gzipよりも優れていますが、通常は高速です。)をxz -T0
(並列XZip圧縮の場合)またはpigz
(並列gzip圧縮の場合)適切であると思うように交換してください。圧縮/速度バランスがとても良いzstdをお勧めします。xz
非常に遅く、gzipは非常に限られた圧縮しか生成できず、比較的低い圧縮設定ではzstdよりも高速ではありません。
しかし、データ暗号化には圧縮よりも多くのCPUが必要になる可能性があるため、問題は実際に暗号化を実行しない理由です。
zstd -r --stdout Pictures/ | ssh -o "Compression=no" user@server "cat > Pictures.zst"