Picchio


Chi non ha mai avuto il bisogno di caricare il più velocemente possibile un file online così da poterlo condividere ?
La comodità di specificare un comando e dopo poco ricevere il link del file da poter condividere con chiunque io voglia è davvero inimmaginabile, non credete?
Per questo ho creato Picchio.

Cercando online ho trovato un servizio davvero simpatico. Mi permette di creare un’app virtuale da poter usare per interfacciarmi con una qualsiasi mia applicazione, che sia un sito web o altro. (persino dropbox, instagram,etc.) Io fornisco il file, lo carico e loro mi restituiscono un link dove poterlo raggiungere, utile no ?
Oltre a questa basilare funzione ce ne sono altre tutte molto utili, vi invito a leggere la documentazione per saperne di più.

Il servizio in questione è: FilePicker.io
L’account free permette un upload mensile di 5000 files, dovrebbero bastare per un uso normale quindi non preoccupatevi.
Dopo aver creato l’app dalla dashboard vi verrà fornita una APIKEY che vi consentirà di interfacciarvi con l’app e di interagire con il servizio in questione ergo tenetevela stretta. Io, essendo un patito della shell preferisco fare le cose da lì, quindi mi sono messo all’opera per realizzare ciò che mi serviva.

Un gestore della mia app su filepicker direttamente da shell.

Da qualche settimana mi sono avvicinato a Node.js con cui sto incrementando le mie conoscenze di javascript ed altro, un linguaggio che sto apprezzando un passo alla volta ed è per questo che ho deciso di realizzare questo script proprio in Node.js.

Lo potete trovare qui: https://github.com/dlion/picchio
Lo script in questione è fatto per imparare e destinato principalmente all’uso personale, quindi se avete consigli su come migliorarlo, se c’è qualche bug o roba simile non esitate a riferirmelo!

Di che ho bisogno ?

Ovviamente per eseguire lo script avrete bisogno di Node.js installato sulla vostra macchina, perfettamente funzionante.
Lo script in questione utilizza i moduli:

  1. Optimist è un modulo davvero interessante, permette di parsare i parametri da riga di comando rendendo la gestione di essi un vero giochetto.
  2. Needle è un modulo che permette la creazione di richieste http permettendo la comunicazione con i vari siti web. (Vi viene niente in mente?)

Gli altri due moduli sono nativi di Node.js e consentono la lettura di file e la gestione delle path.

Come utilizzarlo ?

La sintassi è molto semplice, digitando il comando: node picchio -h riceverete come output l’usage che vi illustrerà tutti i comandi disponibili:

Usage: node ./picchio.js [options] -f [target1] -f [target2] -f [...]
 
Options:
  -a, --api      Set API key          
  -d, --delete   Delete file          
  -f, --file     File to upload        
  -h, --help     Print this usage      
  -s, --show     Print show link      
  -w, --author   Print author's name  
  -v, --version  Print version's script

Upload

Per poter caricare un file avrete bisogno di fornire due parametri:

  • La vostra APIKEY
  • Il file da caricare

Avete due possibili vie:

  1. Inserirla direttamente nella linea di comando.
  2. Editare il file config.json ed inserire nell’apposito spazio la vostra APIKEY.

Vediamo la prima via: node picchio -a "APIKEY" -f "FILE" niente di più, niente di meno.
Per caricare più file in una volta sola vi basterà digitare: node picchio -a "APIKEY" -f "FILE1" -f "FILE2" -f "FILE3" così da caricare il file1, il file2 e il file3 in una volta sola, come ouput ricevete i link di ogni file che avete caricato.

Il secondo modo è aprire il file config.json ed editare la parte interessata con la vostra APIKEY.

config.API      =   ""; //INSERT HERE YOUR API KEY

Dopo di ciò vi basterà digitare: node picchio -f FILE1 -f FILE2 per caricare due file; semplice e funzionale, non credete ?

Show

Come ciliegina sulla torta vi offro una ulteriore opzione; se visitate i link riportati molte volte vi capiterà di poter solamente scaricare il file puntato dal link, l’opzione -s viene in nostro soccorso dandoci in ouput dei link che il browser potrà aprire direttamente al suo interno: node picchio -a "APIKEY" -f FILE1 -s
Con Picchio oltre a poter caricare i vostri file senza problemi potrete anche cancellarli, il tutto sempre da linea di comando; vediamo come:

Delete

Per cancellare un file caricato dovrete fornire due parametri essenziali:

  • La vostra APIKEY
  • Il link del file da voi caricato

La questione dell’APIKEY è la stessa per l’upload, o la fornite direttamente o la inserite nel config.json. In questo esempio fingerò di fornirla direttamente, per cancellare vi basterà digitare: node picchio -a "APIKEY" -d "LINK" ovviamente anche per questa utile funzione vale la possibilità di inserire più link preceduti dal parametro -d.

Riassumendo: la vostra APIKEY è la chiave di tutto, senza di quella non andrete da nessuna parte.

Le rimanenti opzioni sono puramente “visive”, permettono di:

  • -h Conoscere i dettagli sull’autore
  • -v Conoscere la versione dello script

Fatemi sapere che ne pensate, cosa posso aggiungere, cosa va rimosso o migliorato, qualsiasi consiglio è ben accetto!
Nella prossima versione penso proprio di inserire una progressbar così -nel caso di file molto grandi- sarà possibile tenere d’occhio la percentuale caricata.

Saluti, DLion