Fast and temporary file uploader | improved clone in crystal-lang
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
public Fix image Nov 11, 2018
spec Add auto-detect host and port of the server (by request) Oct 26, 2017
src Add required to file upload Nov 11, 2018
.gitignore Update to crystal v0.20, big file work Nov 29, 2016
Dockerfile Udate Dockerfile and relative readme Oct 11, 2016
LICENSE Change LICENSE to GPL-3.0 Apr 13, 2017
Makefile Update kemalcr and crystal Oct 28, 2018 Upgrade some doc and version Nov 5, 2018
docker-compose.yml add Dockerfile and docker-compose config Jul 3, 2016
shard.lock Fix some upload with browsers Nov 11, 2018
shard.yml Dump version v0.5.0 Nov 11, 2018


Fast and lite file upload server ( clone).


  • It's a simple online file sharing.
  • Files older than 7 days are destroyed (configurable).
  • Recognize shebangs, magic numbers, ...

Installation travis

Compatible crystal v0.27.0

From source

make        # build the app / deps
make test   # run unit test
make doc    # build the documentation

From AUR with yaourt

yaourt -S transfer-more


Run the Server

export TRANSFER_SSL_ENABLED=true    # true if the ssl is enabled, any other string is false
export TRANSFER_BASE_STORAGE="/tmp" # where the files will be kept
export TRANSFER_SECURE_SIZE=4       # how much characters to identify a file
export TRANSFER_STORRAGE_DAYS=7     # how much time the files are kept
export TRANSFER_TIME_FORMAT="%y%m%d%H"
./transfer_more --help
    -b HOST, --bind HOST             Host to bind (defaults to
    -p PORT, --port PORT             Port to listen for connections (defaults to 3000)

Command line client

curl --progress-bar --upload-file file.mp4  http://domain/name.mp4

Inside a docker

If you are using docker-compose:

docker-compose build && docker-compose up

Else, you can do:

docker build -t transfer_more . && docker run transfer_more


TODO: Write development instructions here


  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


  • Nephos Arthur Poulet - creator, maintainer