Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mscdex/filebounce
A server for bouncing files from point A to point B
https://github.com/mscdex/filebounce
Last synced: 3 months ago
JSON representation
A server for bouncing files from point A to point B
- Host: GitHub
- URL: https://github.com/mscdex/filebounce
- Owner: mscdex
- License: mit
- Created: 2015-04-06T06:41:48.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-04-07T17:42:17.000Z (over 9 years ago)
- Last Synced: 2024-09-14T02:53:23.076Z (4 months ago)
- Language: JavaScript
- Size: 180 KB
- Stars: 7
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Description
===========A server written in node.js for streaming/"bouncing" files from point A to point
B via a short-lived, unique, shareable web link.Files are never stored on the server as data merely passes through it between
the sender and recipient, without touching the disk.Requirements
============* [node.js](http://nodejs.org/) -- v0.10.0 or newer
Install
=======npm install filebounce -g
Usage
=====After installation, you can use `fb` or `filebounce` to start a server.
By default with no arguments, the server listens on all network interfaces for
HTTP requests on port 80.Here's an example that uses cURL:
Sender:
```
# curl -X POST -H "Content-Type: application/x-gzip" --data-binary @foo.tar.gz http://myfbserver
http://myfbserver/8ae9f610-dd48-11e4-820f-99adafb782b6
```Receiver:
```
# curl http://myfbserver/8ae9f610-dd48-11e4-820f-99adafb782b6 | tar zx
```Then once the file transfer has completed, the Sender will see something like
this after the file url:```
File received by 192.168.1.5
```For graphical browsers, if you navigate to `http://myfbserver` you will be
prompted with a form with a file field. There you can select the file and submit
it. Shortly after, a link will appear at the top of the page containing a link
to the file stream.Similarly you can navigate to a shared file stream URL in a graphical browser
and the browser will either download it or render it in some way (depending on
the file's `Content-Type` and how the browser handles that file type).If a waiting file stream expires, the sender will be "notified" and the file
stream link will no longer be valid. The kind of notification depends on whether
you're using a CLI client like cURL or you are sending from a graphical browser:* Sending from a CLI client will show a "Bounce expired." message and the
request will be terminated.* Sending from a browser will result in an abrupt termination at the socket
level which will typically result in a "connection lost" type of message in the
browser window. Unfortunately this is a necessary unpleasantry due to the way
that at least *some* browsers behave when uploading a file and the server
responds with an HTTP error status code: those browsers will actually re-submit
the file (even if responding with a 413 for example) at least a few times before
giving up (which is a waste) and what the browser displays after it gives up is
browser-dependent also.Command-line Options
====================```
-c, --config Path to JSON config file containing these same options
-a, --address The network address to listen on [default: All addresses]
-p, --port The port number to listen on
[default: 80 for HTTP, 443 for HTTPS]
--ttl How long waiting requests are good for (in milliseconds)
[default: 30000]
--https.ca Path to a CA to use
--https.cert Path to a certificate to use [string]
--https.key Path to a private key to use [string]
--https.pass Passphrase for a private key or pfx [string]
--https.pfx Path to a pfx file [string]
-h Show help
```