http file sharing hub
Project description
⇆🎉 copyparty
- http file sharing hub (py2/py3) (on PyPI)
- 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
orpy3.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
- markdown viewer
- markdown editor
summary: it works! you can use it! (but technically not even close to beta)
dependencies
jinja2
- pulls in
markupsafe
as of v2.7; use jinja 2.6 on py3.2
- pulls in
optional, enables thumbnails:
Pillow
(requires py2.7 or py3.5+)
sfx
currently there are two self-contained binaries:
copyparty-sfx.sh
for unix (linux and osx) -- smaller, more robustcopyparty-sfx.py
for windows (unix too) -- crossplatform, beta
launch either of them and it'll unpack and run copyparty, assuming you have python installed of course
pls note that copyparty-sfx.sh
will fail if you rename copyparty-sfx.py
to copyparty.py
and keep it in the same folder because sys.path
is funky
if you don't need all the features you can repack the sfx and save a bunch of space; all you need is an sfx and a copy of this repo (nothing else to download or build, except for either msys2 or WSL if you're on windows)
724K
original size as of v0.4.0256K
after./scripts/make-sfx.sh re no-ogv
164K
after./scripts/make-sfx.sh re no-ogv no-cm
the features you can opt to drop are
ogv
.js, the opus/vorbis decoder which is needed by apple devices to play foss audio filescm
/easymde, the "fancy" markdown editor
for the re
pack to work, first run one of the sfx'es once to unpack it
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 .venv
. .venv/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)
- create sfx with
make-sfx.sh
todo
roughly sorted by priority
- up2k handle filename too long
- up2k fails on empty files? alert then stuck
- drop onto folders
- 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 :||||
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for copyparty-0.4.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 060df01d22f704ccbcabffa94554b43d920621d01491d8e0e96fb9da7cc65df9 |
|
MD5 | 7c24f9b08d4e09adee9325cce115f0bc |
|
BLAKE2b-256 | 2d566a73a4cfbcc4de35cd57aa3cd79f99e9c596eb8e807be6eb3d6708a3524a |