Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps
Find a file
2019-06-12 16:35:09 +00:00
.vscode add upload widget 2019-06-10 17:18:11 +00:00
copyparty import surrogateescape from python-future 2019-06-12 16:35:09 +00:00
docs up2k notes 2019-06-11 13:27:45 +00:00
scripts static resources 2019-06-02 14:16:53 +00:00
tests file access 2019-06-10 01:23:13 +00:00
.gitattributes static resources 2019-06-02 14:16:53 +00:00
.gitignore add HttpConn 2019-06-06 08:18:00 +02:00
LICENSE Initial commit 2019-05-26 15:28:34 +00:00
README.md fallback uploader works 2019-06-10 19:47:01 +00:00
setup.py static resources 2019-06-02 14:16:53 +00:00

🎉 copyparty

  • http file sharing hub (py2/py3)
  • MIT-Licensed, 2019-05-26, ed @ irc.rizon.net

summary

turn your phone or raspi into a portable file server with resumable uploads/downloads using IE6 or any other browser

  • server runs on anything with py2.7 or py3.3+
  • resumable uploads need firefox 12+ / chrome 6+ / safari 6+ / IE 10+
  • code standard: black

status

  • sanic multipart parser
  • load balancer (multiprocessing)
  • upload (plain multipart, ie6 support)
  • upload (js, resumable, multithreaded)
  • download
  • browser
  • media player
  • thumbnails
  • download as zip
  • volumes
  • accounts

summary: it works

dependencies

  • jinja2
    • pulls in markupsafe

optional, enables thumbnails:

  • Pillow (requires py2.7 or py3.5+)

install on android

install Termux (see ocv.me/termux) and then

apt install python
python3 -m venv ~/pe/ve.copyparty
. ~/pe/ve.copyparty/activate
pip install jinja2
# download copyparty somehow
python3 -m copyparty

for image thumbnails, install optional dependency Pillow:

apt install clang python-dev zlib-dev libjpeg-turbo-dev libcrypt-dev ndk-sysroot
CFLAGS=-I$HOME/../usr/include/ pip install Pillow

dev env setup

python3 -v venv .env
. .env/bin/activate
pip install jinja2  # mandatory deps
pip install Pillow  # thumbnail deps
pip install black bandit pylint flake8  # vscode tooling

immediate todo

roughly sorted by priority

  • http error handling (conn.status or handler-retval)
  • last-modified header
  • support pillow-simd