Hay muchas maneras de compartir archivos, pero con curl.io podemos hacerlo directamente desde el terminal usando curl, permitiéndonos archivos hasta 5 GB y durante 4 horas, tiempo tras el cual será eliminados.

Por ejemplo, para compartir el archivo /tmp/test:

$ curl -F "file=@/tmp/test" http://curl.io/send/nzdqxcmf
File successfully received.
You can download test from this url:
http://curl.io/get/nzdqxcmf/90571b24cf847434a171d41cb2043d6a561cb85b

Para recuperarlo:

$ curl -o test http://curl.io/get/nzdqxcmf/90571b24cf847434a171d41cb2043d6a561cb85b

Tal como nos sugieren en su web, también podemos enviarlo cifrado con gpg:

$ gpg -c "/tmp/test" && curl -F "file=@/tmp/test.gpg" http://curl.io/send/nzdqxcmf

Para recuperarlo y descifrarlo:

curl http://curl.io/get/nzdqxcmf/90571b24cf847434a171d41cb2043d6a561cb85b | gpg -o test

Absolutamente todo desde el terminal

El hecho de poder compartir archivos en la nube desde el terminal está muy bien, pero no deja de ser un engorro tener que recurrir al navegador para poder obtener la URL de envío. Descargar el código fuente de la página no nos sirve porque la URL se genera por javascript y en la web se comprueba que el código de la URL sea válido (no sirve enviar cualquier cosa, aunque sí parece que se pueden reutilizar URLs válidas).

Afortunadamente, podemos utilizar phantomjs. Mediante el siguiente script, curlio.js, podremos obtener una URL de envío válida:

var page  = require('webpage').create(),
  address = "http://curl.io";

page.open(address, function(status) {
  if (status !== 'success') {
    console.log('Error loading address');
  } else {
    var url = page.evaluate(function() {
      return document.getElementsByClassName('command')[0].innerHTML.replace(/^.*/, "");
    });
    console.log(url);
  }
  phantom.exit();
});

Un ejemplo de uso:

$ phantomjs curlio.js
http://curl.io/send/fgmnwl2e

Entradas relacionadas


Published

Category

admin

Tags

Contacto