script menú hacer example como http bash shell url pastebin

http - menú - ¿Cómo usar pastebin desde shell script?



menú en shell script de linux (5)

Cuando pastebin.com cerró su API pública, estaba buscando alternativas.

Sprunge ( http://github.com/rupa/sprunge ) es genial. Uso:

<command> | curl -F ''sprunge=<-'' http://sprunge.us

O, como yo lo uso:

alias paste="curl -F ''sprunge=<-'' http://sprunge.us" <command> | paste

¿Es posible usar pastebin (puede ser a través de su funcionalidad "API" ) dentro de los scripts de shell bash? ¿Cómo envío http-post? ¿Cómo recupero la URL?


La API para publicar en pastebin ha cambiado, desde que fue publicada por codaddict.
Los detalles se pueden encontrar en este enlace: pastebin.com/api

Ejemplo: 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'' 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''

Hay tres campos esenciales a partir de ahora:
api_dev_key -> Necesitas crear un inicio de sesión en pastebin.com para obtener eso
api_option -> Formato en el cual publicar
api_paste_code -> Texto que quieres publicar


Otras dos respuestas (de circa 2014) apuntan a http://sprunge.us , que está diseñado para ser utilizado así ...

curl --form ''[email protected]'' sprunge.us

Sin embargo, a partir de 2018, sprunge.us tiene una tendencia a sobrecargarse y devolver 500 errores internos del servidor a cada solicitud. Para archivos de al menos 300 KB, pero no tan altos como 2.8 MB, he tenido buena suerte con el servicio muy similar en ix.io :

curl --form ''f:[email protected]'' ix.io

Para archivos de al menos 2.8 MB (y tal vez más alto, no lo sé), he encontrado el https://transfer.sh más altamente pulido. Recomienda una línea de comando ligeramente diferente y más simple, y requiere https (no funcionará sin ella):

curl --upload-file yourfile.txt https://transfer.sh


Pon lo siguiente en tu .bashrc :

sprunge() { if [[ $1 ]]; then curl -F ''sprunge=<-'' "http://sprunge.us" <"$1" else curl -F ''sprunge=<-'' "http://sprunge.us" fi }

... y luego puedes correr:

sprunge filename # post file to sprunge

...o...

some_command | sprunge # pipe output to sprunge


La documentation dice que debe enviar una solicitud POST a

http://pastebin.com/api_public.php

y el único parámetro obligatorio es paste_code , de tipo string es el pegado que desea hacer.

En caso de éxito se devolverá una nueva URL de pastebin .

Puede hacer esto fácilmente desde su shell bash usando el comando curl .

curl utiliza la opción -d para enviar los datos POST a la URL especificada.

Manifestación:

Esta demostración creará un nuevo pegado con el código:

printf("Hello..I am Codaddict");

Desde tu shell:

$ curl -d ''paste_code=printf("Hello..I am Codaddict");'' ''http://pastebin.com/api_public.php'' http://pastebin.com/598VLDZp $

Ahora, si ves la URL http://pastebin.com/598VLDZp , verás mi pegado :)

Alternativamente , puede hacerlo usando el comando wget que usa la opción --post-data para enviar valores POST .

He intentado este comando funciona bien:

wget --post-data ''paste_code=printf("Hello..I am Codaddict");'' ''http://pastebin.com/api_public.php''