Comment utiliser pastebin depuis shell script?
est-il possible d'utiliser pastebin (peut-être via leur fonctionnalité "API") dans les scripts shell bash? Comment envoyer http-post? Comment puis-je récupérer l'URL?
5 réponses
documentation dit que vous devez soumettre un POST
demande
http://pastebin.com/api_public.php
et le seul paramètre obligatoire est paste_code
, de type string est la pâte que vous voulez faire.
Sur le succès d'un nouveau pastebin
URL sera retourné.
vous pouvez facilement faire cela depuis votre shell bash en utilisant la commande curl
.
curl
utilise -d
option pour envoyer le POST
données au niveau spécifié URL.
Démo:
cette démo va créer un nouveau coller avec le code:
printf("Hello..I am Codaddict");
à Partir de votre shell:
$ curl -d 'paste_code=printf("Hello..I am Codaddict");' 'http://pastebin.com/api_public.php'
http://pastebin.com/598VLDZp
$
Maintenant, si vous voyez l'URL http://pastebin.com/598VLDZp, vous verrez mon coller :)
alternativement vous pouvez le faire en utilisant le wget
commande qui utilise l'option --post-data
envoyer POST
valeurs.
j'ai essayé cette commande, il fonctionne amende:
wget --post-data 'paste_code=printf("Hello..I am Codaddict");' 'http://pastebin.com/api_public.php'
Sprunge (http://github.com/rupa/sprunge) est grand. D'utilisation:
<command> | curl -F 'sprunge=<-' http://sprunge.us
ou, comme je l'utiliser:
alias paste="curl -F 'sprunge=<-' http://sprunge.us"
<command> | paste
mettez ce qui suit dans votre .bashrc
:
sprunge() {
if [[ ]]; then
curl -F 'sprunge=<-' "http://sprunge.us" <""
else
curl -F 'sprunge=<-' "http://sprunge.us"
fi
}
...et puis vous pouvez exécuter:
sprunge filename # post file to sprunge
...ou...
some_command | sprunge # pipe output to sprunge
deux autres réponses (de circa 2014) pointent vershttp://sprunge.us, qui est conçu pour être utilisé comme ceci...
curl --form 'sprunge=@yourfile.txt' sprunge.us
cependant, à partir de 2018, sprunge.nous avons tendance à être surchargés et à renvoyer 500 erreurs internes du serveur à chaque requête. Pour les fichiers allant jusqu'à au moins 300 Ko mais pas aussi haut que 2,8 mo, j'ai eu de la chance avec le service très similaire à http://ix.io:
curl --form 'f:1=@yourfile.txt' ix.io
Pour les fichiers jusqu'à au moins 2,8 MO (et peut-être plus, Je ne sais pas), j'ai trouvé le plus poli https://transfer.sh. Il recommande un peu différente et plus simple ligne de commande, et il fauthttps
(il ne fonctionnera pas sans elle):
curl --upload-file yourfile.txt https://transfer.sh
L'API pour l'affichage à pastebin a changé, depuis l'affichage par codaddict.
Pour plus de détails, voir le lien suivant: https://pastebin.com/api
Exemple:
curl -d 'api_paste_code=printf("Hello..\n I am Codaddict");' \
-d 'api_dev_key=<get_your_own>' \
-d 'api_option=paste' 'http://pastebin.com/api/api_post.php'
il y a trois champs essentiels à l'heure actuelle:api_dev_key
-> Vous avez besoin de créer un compte de connexion sur pastebin.com afin d'obtenir ceapi_option
- > Format dans lequel afficherapi_paste_code
-> le Texte que vous voulez afficher