Live data from Hacker News

Transfer.sh – File sharing from the command line

transfer.sh

51–60 of 117 posts

Re: Transfer.sh – File sharing from the command line

#52
post #43

Earlier quoted context omitted.

Simplest explanation I can think of: Static binaries have no dependencies. They should just run and not bark about missing (shared/dynamic) libraries, nor require you to install them. Of course, even static binaries rely on some basic level of compatibility; typically system-level things that don't change much. Dynamically-linked binaries have the potential to create a massive dependency graph that can hard or even i…

Those annoying dependency graphs provide both standardized visibility and also the ability to fix and patch components independently of each other.

Which makes sense for large software systems, but for small tools that you might want to carry around on a flash drive or that you need to always work across multiple machines without having a vm, static binaries make sense.

Re: Transfer.sh – File sharing from the command line

#53
post #43

Earlier quoted context omitted.

Could you please go into details like what's basic difference b/w static binaries and apps which use dynamic linking. What are the benefits of one over another? Something like grokking this concept for once and all :D

Simplest explanation I can think of: Static binaries have no dependencies. They should just run and not bark about missing (shared/dynamic) libraries, nor require you to install them. Of course, even static binaries rely on some basic level of compatibility; typically system-level things that don't change much. Dynamically-linked binaries have the potential to create a massive dependency graph that can hard or even i…

I'm a big fan of Go's static binaries, but I'm sorry, the last point doesn't make much sense to me. The dependency graph is going to be the same whether or not you include everything in your binary. It just so happens that the Go ecosystem hasn't adopted node's cancerous everything-is-a-dependecy pattern (at least yet). If it did, the dependency graph would be equally horrendous; the only difference is that the dependencies are included in the binary.

Re: Transfer.sh – File sharing from the command line

#54
post #44

Earlier quoted context omitted.

I built a proof of concept project that was a lot like transfer.sh at one point in time. My solution was to not only have a time limit but a download limit as well. I'd guess most people transferring files from the command line want to transfer something from one machine to another, or maybe to a few other machines. I was going to allow a transfer limit of 10 transfers before the file/link went dead, which would hope…

Unless you are storing hashes, what would prevent someone from writing a script that simply reuploads the file to your service after downloading? That would increase the share limit.

Let's say you generate the identifier for the upload based on the file hash. If you add a timestamp or random nonce then they'll have to redistribute the link to the file every time they re-upload as it will change every time.

Re: Transfer.sh – File sharing from the command line

#55
post #9

On a related note, I recently learnt that if you're on the same local network, there's a much faster way to transfer than the old tar|nc trick[0]: udpcast. You do $ udp-sender --min-receivers 1 --full-duplex --pipe 'tar czvf - theDirectory' on the sender and $ udp-receiver --pipe 'tar xzp' and at least on my home network it's 11x faster than tar|nc. There are some caveats[1] about udp not working well everywhere, and…

[deleted]

Re: Transfer.sh – File sharing from the command line

#56
post #40

I like it! But for me ssh already provides a simple and secure way to move files from one place or another.. tar -cf - ./files.txt ./orDir/ | ssh host "(cd /dest/dir; tar -xf -)" Given that ssh it so ubiquitous I think this will always be my go to.

Reminds me of how they left recursions out of the 'cp' command on plan9, so the recommended way to copy directories is:

@{cd fromdir && tar cp .} | @{cd todir && tar xT}

Re: Transfer.sh – File sharing from the command line

#57
There are so many tools that can transfer files between two computers. I really like ones like this because you don't have to have SSH access or forward any ports to send a file from A to B. Its similar vein to other peer-to-peer utilities like zget [1], sharedrop [2], instant.io (webtorrent) [3], filepizza (webtorrent) [4], magic-wormhole [5], toss [6], dat [7], and many many others.

During Hacktoberfest I also started my own, written in Go, so I could have my friends can use it without installing a Python ecosystem [8].

[1]: https://github.com/nils-werner/zget

[2]: https://github.com/cowbell/sharedrop

[3]: https://github.com/webtorrent/instant.io

[4]: https://github.com/kern/filepizza

[5]: https://github.com/warner/magic-wormhole

[6]: https://github.com/zerotier/toss

[7]: https://github.com/datproject/dat

[8]: https://github.com/schollz/croc

Re: Transfer.sh – File sharing from the command line

#59
post #23

Earlier quoted context omitted.

Static binaries are magic :)

Could you please go into details like what's basic difference b/w static binaries and apps which use dynamic linking. What are the benefits of one over another? Something like grokking this concept for once and all :D

Pros:

* single binary that you can scp (or use transfer.sh haha) into the production machine and run; no runtime environments, package installation etc.

* two different applications can depend on different versions of a library without any intermediate package manager or virtual environment

* guaranteed execution: related to the first point, but I see enough merit in this to make it a separate point

Cons:

* If there's a security issue in a commonly used library (database/sql, for example), you'll need to patch every application that uses it. With dynamic dependencies, you just patch the library.

Re: Transfer.sh – File sharing from the command line

#60
Btw, many unix files explorer can connect to many remote servers via ssh. Unless x less of course. All is integrated, local programs can read and edit those files as regular, drag and drop, folder, permissions with right click. I use the shell a lot, but remote bookmarks are wizardry!
Post reply on HN