2017-06-28 13 views

答えて

2

次のように動作します:

:あなたは https://postimage.io/ページを見れば

{ 
    "status": "OK", 
    "total_uploaded": 1, 
    "url": "\/\/postimg.org\/image\/4crb2b603\/9bfe3a80\/" 
} 

あなたがこれを見つける:

curl -F "[email protected]_art.jpg;filename=cover_art.jpg;type=image/jpeg;" \ 
    -F "token=61aa06d6116f7331ad7b2ba9c7fb707ec9b182e8" \ 
    -F "upload_session=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \ 
    -F "adult=0" "https://postimage.io/upload.php" 

これは次のようにJSONの結果を与えます

var upload_session = rand_string(32); 

の場合、サーバーが正確に32文字を確認しているようですso:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

変数tokenがハードコードされているようです(リクエスト/ IP/UAが同じ場合も同じです)。あなたがgawkを使用してインスタンスのためにそれをスクラップすることができますので、多分それは他のパラメータに定期的に、または依存して変化する:

curl -s "https://postimage.io/" | \ 
    gawk 'match($0, /'\''token'\''\s+:\s+'\''(.*)'\''/, data) {print data[1]}' 

やgrepで:

curl -s "https://postimage.io/" | grep -oP "'token'\s+:\s+'\K(\w+)" 

だから、次のスクリプトは、カール、grepのとjqを使用して動作します( JSONパーサー)、生成されたURIを返します。

token=$(curl -s "https://postimage.io/" | grep -oP "'token'\s+:\s+'\K(\w+)") 

curl -s -F "[email protected]_art.jpg;filename=cover_art.jpg;type=image/jpeg;" \ 
     -F "token=$token" \ 
     -F "upload_session=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \ 
     -F "adult=0" "https://postimage.io/upload.php" | \ 
     jq -r '"https:" + .url' 
関連する問題