2

curl bashでバイナリ変数をPOSTするにはどうすればよいですか?

#!/usr/bin/env bash
IMAGE=$(curl "http://www.google.com/images/srpr/logo3w.png")
curl --data-binary "$IMAGE" --request "POST" "http://www.somesite.com"

アップロード時にCurlが画像を破損しているようです。

Curlには、応答をディスクに書き込んでから読み取るオプションがありますが、メモリ内でのみ行う方が効率的です。

4

2 に答える 2

2

次のように変数を削除してみてください...

curl "http://www.google.com/images/srpr/logo3w.png" | curl --data-binary - --request "POST" "http://www.somesite.com"

カールマンページから:

データを文字@で始める場合、残りはデータを読み取るためのファイル名である必要があります。-curlでstdinからデータを読み取る場合。

編集:manページからも:

--raw使用すると、コンテンツまたは転送エンコーディングのすべての内部HTTPデコードが無効になり、代わりに変更されていないrawで渡されます。(7.16.2で追加)

片側または両側に適用するとどうなりますか?

于 2013-01-06T21:02:14.073 に答える
1

特定のフォルダーからファイルを動的にカールさせたいという関連の問題がありました。

curl --data-binary directory/$file --request "POST" "http://www.somesite.com" 動作しませんでした - 実際のファイルの代わりに文字列 "directory/myFile.jar" をアップロードしました。

@記号を追加すると curl --data-binary @directory/$file --request "POST" "http://www.somesite.com"修正されました。

于 2015-02-28T17:14:36.217 に答える