scpを使用してjarファイルの内容を抽出してカーリング

scpを使用してjarファイルの内容を抽出してカーリング

ボックスにjavadocツリーを含むjarファイルがあります。私はそれを別のボックスに移動し、特定のディレクトリ(存在しないかもしれません)に瓶を抽出する必要があります。

リモートボックスにログインするために使用したいプリンシパルのユーザー名/パスワードがありますが、使用するSSHキーはありません。

見積もりを使用してこれを実行できますが、カールを使用して完全に実行できることを確認したいと思います。次のコマンドを使用して、jarファイルをリモートボックスに正常に転送しました。

curl -k -T file.jar -u user:password scp://host/path/file.jar

要件のより難しい部分は、瓶を開梱するか、stdoutを介してソースからパイプを介してリモートで解凍することです。このために、以下を試しました。

gzip -c file.jar | curl -k -T - -u user:password scp://host/path/stuff

これは、「curl:(25)SCPにアップロードするために既知のファイルサイズが必要です」と失敗します。

これらすべてが機能するようにするには、完全な「予測」実装を実行する必要がありますか?私は、カールが存在しない場合にターゲットディレクトリを作成できるかどうかを考慮しませんでした。

答え1

私は同じ問題を経験しました。正確な理由はわかりませんが、scpを介したカールはファイル全体のみをコピーでき、サイズを知っています。 scp自体の制限でもあります。

解決策はとても簡単です。プロトコルを scp から sftp に変更すると正常に動作します。

gzip -c file.jar | curl -k -T - -u user:password sftp://host/path/stuff

関連情報