
Command-line file sharing - masolino
https://transfer.sh/
======
andy_ppp
That's great, you can encrypt stuff then as follows (on a Mac).

    
    
      brew install gpg
      gpg --gen-key
      gpg -ac < file.unencrypted | curl http://transfer.sh/file.encrypted -T -
    

To decrypt, take the returned URL:

    
    
      curl https://transfer.sh/1nKXr/file.encrypted | gpg -ad
    

Someone can probably improve this!

~~~
xenefungus
Handy tip for OS X users: after creating the "transfer" alias, simply use

    
    
      transfer file.txt | pbcopy 
    

to get the link copied to your clipboard!

~~~
msvalkon
For linux users, install xclip from your flavor of package managers and then:

    
    
        transfer file.txt | xclip
    

link is copied to your clipboard.

------
Sir_Cmpwn
My usual procedure goes something like this:

    
    
        rsync -P foobar.png personal.sircmpwn.com:/var/html/
        # "hey dude, go download http://personal.sircmpwn.com/foobar.png"

~~~
pimlottc
I do this too, but I find it annoying not knowing if the file has been
received and when it's safe for me to delete it.

~~~
nl5874
Next version I'll add the possibility to add a timespan in number of days or
number of downloads before deletion. What about that?

~~~
TheLoneWolfling
I'd personally love a website that offered self-destructing url pointers or
downloads. So, a url that redirects _once_ to the target, that sort of thing.

~~~
pimlottc
You might not want to be too strict about it. I know I'll sometimes look at an
attachment on the go, but not be able to download it until later when I'm at
home.

------
snorrah
I like in the little example animation, hello.txt is uploaded and a url is
returned, but then a completely different url is used to get the hello.txt
back.

~~~
nl5874
Op here, good point. Will update the demo ;-)

~~~
coderholic
How did you make the demo? I'd love to put something similar on
[http://ipinfo.io](http://ipinfo.io)

~~~
nl5874
Using tty2gif, I've made it work at my mac. Only need to find some time to
upload the changes to the repo.

    
    
      http://z24.github.io/tty2gif/

~~~
z24z
tty2gif author here. Could you send me a pull request about your mac version?
I can merge them if I have time. Thanks for your efforts!

------
joelthelion
How do you intend to make money?

~~~
zyxley
Put in some text ads under the curl progress bar.

~~~
oftenwrong
"These pills will make your dick grow like this progress bar!"

------
ankushio
I use CloudApp for OS X for sharing files and it's pretty convenient. The best
part is sharing screenshots with it. You take a screenshot, it is
automatically uploaded to the cloud (no pun intended) and the link is copied
to your Clipboard. You could not ask for anything simpler.

~~~
dewey
I'm still looking for an app which does just that, just with my own server via
scp / sftp and not dropbox or a third party service. It's so convenient once
you got used to it.

\-
[https://news.ycombinator.com/item?id=8039708](https://news.ycombinator.com/item?id=8039708)

~~~
aroch
I've used TinyGrab for this for quite some time:
[http://tinygrab.com/](http://tinygrab.com/)

------
mati
[http://curl.io/](http://curl.io/)

~~~
ende42
[https://wsend.net/](https://wsend.net/)

~~~
hnha
[http://chunk.io](http://chunk.io)

~~~
jonnyrockit
[http://purrrl.link](http://purrrl.link)

~~~
hardwaresofton
[http://configr.io](http://configr.io)

~~~
IgorPartola
Which of all of these is the best? Which is most likely to still have my files
after 5+ years?

~~~
hardwaresofton
The one I posted is (mine and) amateur, don't use it.

It will probably be around for 5 years, but is not undergoing active
development, and it was a side project I worked on for funsies (I may come
back to it one day, and it's kind of a leave-it-be project, especially without
100s of users).

Please refer to the other ones for a serious (or at least more well thought
out) solution.

------
antimora
I wish the URL could include a hash of the content so it could be used for
verification for uploading and downloading the files. It could be handy for
error checking and security checks.

~~~
derefr
Better yet, if there was a wrapper for this, it could just operate on
abbreviated hash-prefix (i.e. git ref) rather than URL.

    
    
        $ transfer < ./foo
        acH39gew
    
        $ transfer acH39gew > ./foo
    

The ref would just be short for the URL, and you could still use the URL, of
course.

------
mivok
Even shorter/easier to remember version of the command (you don't have to
specify the filename twice if you don't want):

    
    
        curl -T ./filename transfer.sh

------
abcd_f
This will be abused for hosting questionable things in no time, if it's not
already.

~~~
daveloyall
These are the people behind transfer.sh:
[https://github.com/dutchcoders/](https://github.com/dutchcoders/)

...Based on some words I see on that page, I think they will anticipate abuse
and roll with the punches.

~~~
nl5874
Right you are! We will implement a page in between depending on the referer.
Direct download users won't have any issues, but to prevent abuse the page
will be shown if from an other site.

------
qwerta
Nice, finally hassle free service. No registration, proprietary clients etc...

~~~
nine_k
This makes me wonder about their future. I don't see any revenue streams, but
I _can_ see nontrivial expenses.

------
daineseh
Hi...I write a wrapper tool, hopeful easy to use, and now just upload &
download twice function.

[https://github.com/daineseh/py-transfer.sh](https://github.com/daineseh/py-
transfer.sh)

ex1: Upload a file to [http://transfer.sh](http://transfer.sh)

    
    
      $./pt.py -u /home/something/file1
    

# and output a link for download:

    
    
      https://transfer.sh/19Xwp/file1
    
    

ex2: Upload multiple files to [http://transfer.sh](http://transfer.sh)

    
    
      $./pt.py -u /home/something/file1 /home/something/file2 /home/something/file3
    

# and output some link for downloads:

    
    
      https://transfer.sh/19Xwp/file1
    
      https://transfer.sh/19Xwp/file2
    
      https://transfer.sh/19Xwp/file3
    
    

ex3: download multiple files from [http://transfer.sh](http://transfer.sh)

    
    
      $./pt.py -d https://transfer.sh/19Xwp/file1 https://transfer.sh/1fn4k/file2
    

# Print downloads information:

    
    
      Download ./file1 done.
      
      Download ./file2 done.
    
    

ex4: download multiple files and specify path from
[http://transfer.sh](http://transfer.sh)

    
    
      $./pt.py -d https://transfer.sh/19Xwp/file1  https://transfer.sh/1fn4k/file2 -w /home/user/
    

# Print downloads information:

    
    
      Download /home/user/file1 done.
    
      Download /home/user/file2 done.

------
pit
I didn't know about tty2gif
([http://z24.github.io/tty2gif/](http://z24.github.io/tty2gif/)) -- that looks
pretty cool.

~~~
ipedrazas
It is but it creates some amazing huge gifs :)

~~~
z24z
Author here. Thanks for your comment and I have reduced the gif size quite a
lot. Please take a look.

------
chrisan
I really like [http://fh.tl/](http://fh.tl/) because you can also easily send
shell output

    
    
        [/] $ ls -la / | curl -F 'paste=<-' http://fh.tl/
        
        Your paste has been saved!
        
        Share this URL:
        
               http://fh.tl/MO
        
        [/] $ 
    
    

helpful when trying to debug someone on a remote workers machine

~~~
morsch
I was puzzled to see a symlinked libnss3.so in your root directory and
couldn't help myself but google it. Here's the reason (bug in package ca-
certificates-java): [https://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=688415](https://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=688415)

------
Okke123
I would love to use this for my own files, without expiration etc. Do you have
any plans to open source this?

~~~
profsnuggles
Maybe I don't understand what this service actually does. When you take away
the file expiration and the convenience of not having to manage your own
infrastructure what is left? I've had this script in ~/bin for years.

    
    
      SERVER="example.com"
      LOCATION="public_html/uploads"
      BASE_URL="http://$SERVER/uploads"
      
      scp "$1" "$SERVER:$LOCATION"
      echo "$BASE_URL/$1" | xclip -i

~~~
Fastidious
Add a cron job to that (to manage timed deletions), and you got a very sweet
setup! :-)

------
mmahemoff
I've been wanting something like this for semi-private image shares as Imgur's
URLs aren't very random; but Transfer has a similar security problem; it looks
like the URLs need to be longer as a prerequisite to being un-crawlable. I
hope you'll consider it.

~~~
aw3c2
Never expect things you upload to the internet to be private. There are so
many vectors where this can go wrong. The host might list directory indexes,
s3 buckets can be open, sites can be hacked, etc etc.

~~~
mmahemoff
You did see the part where I said "semi-" private? I'm just suggesting OP
might want to harden the URLs, otherwise the URLs might as well be /1 /2 /3.

------
Paul_S
I use woof: [http://www.home.unix-
ag.org/simon/woof.html](http://www.home.unix-ag.org/simon/woof.html)

------
scastillo
at least for common use cases like curl and wget you probably need a wrapper.
I mean i love the idea of never leaving my cli, but... as developer and bash
user im lazy... so please don't make type long curl commands. (Yeah I know I
can add some aliases, but a wrapper could be handy). Anyway good job :)

------
Rudism
Are there any solutions similar to this and the others mentioned in the
discussion that can be self-hosted?

------
iN7h33nD
Responsive NavBar button is broken. Also is there any reason to alias a
function like in the sample?

------
Gonzih
Is there a way to upload image without "attachment" in content disposition
header?

~~~
nl5874
Yes, this has been done because it was abused. We will make some smarter
changes, which will allow removal of the content disposition header.

------
calebm
Thank you for this.

