Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps
Find a file
2020-01-19 16:12:59 +01:00
.vscode full-duplex broker for up2k-registry 2019-07-01 02:42:29 +02:00
bin release v0.2.3 2020-01-19 16:12:59 +01:00
copyparty release v0.2.3 2020-01-19 16:12:59 +01:00
docs rudimentary jython compat 2019-11-11 04:12:25 +01:00
scripts release v0.2.3 2020-01-19 16:12:59 +01:00
tests support mojibake and py3.2 2019-06-12 16:39:43 +00:00
.gitattributes static resources 2019-06-02 14:16:53 +00:00
.gitignore add buildscripts for js deps 2019-06-25 23:04:13 +00:00
LICENSE Initial commit 2019-05-26 15:28:34 +00:00
README.md support connection: close 2019-07-06 23:59:45 +00:00
setup.py release v0.2.3 2020-01-19 16:12:59 +01: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.2+
  • resumable uploads need firefox 12+ / chrome 6+ / safari 6+ / IE 10+
  • code standard: black

notes

  • iPhone/iPad: use Firefox to download files
  • Android-Chrome: set max "parallel uploads" for 200% upload speed (android bug)
  • Android-Firefox: takes a while to select files (in order to avoid the above android-chrome issue)
  • Desktop-Firefox: may use gigabytes of RAM if your connection is great and your files are massive

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: close to beta

dependencies

  • jinja2
    • pulls in markupsafe as of v2.7; use jinja 2.6 on py3.2

optional, enables thumbnails:

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

install on android

install Termux (see ocv.me/termux) and then copy-paste this into Termux (long-tap) all at once:

apt update && apt -y full-upgrade && termux-setup-storage && apt -y install curl && cd && curl -L https://github.com/9001/copyparty/raw/master/scripts/copyparty-android.sh > copyparty-android.sh && chmod 755 copyparty-android.sh && ./copyparty-android.sh -h
echo $?

after the initial setup (and restarting bash), you can launch copyparty at any time by running "copyparty" in Termux

dev env setup

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

how to release

in the scripts folder:

  • run make -C deps-docker to build all dependencies
  • create github release with make-tgz-release.sh
  • upload to pypi with make-pypi-release.(sh|bat)

todo

roughly sorted by priority

  • look into android thumbnail cache file format
  • support pillow-simd
  • cache sha512 chunks on client
  • symlink existing files on upload
  • comment field
  • figure out the deal with pixel3a not being connectable as hotspot
    • pixel3a having unpredictable 3sec latency in general :||||