diff --git a/README.md b/README.md index 9d643d72..4af5b439 100644 --- a/README.md +++ b/README.md @@ -305,7 +305,7 @@ upgrade notes * http-api: delete/move is now `POST` instead of `GET` * everything other than `GET` and `HEAD` must pass [cors validation](#cors) * `1.5.0` (2022-12-03): [new chunksize formula](https://github.com/9001/copyparty/commit/54e1c8d261df) for files larger than 128 GiB - * **users:** upgrade to the latest [cli uploader](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) if you use that + * **users:** upgrade to the latest [cli uploader](https://github.com/9001/copyparty/blob/hovudstraum/bin/u2c.py) if you use that * **devs:** update third-party up2k clients (if those even exist) @@ -512,7 +512,7 @@ you can also zip a selection of files or folders by clicking them in the browser ## uploading -drag files/folders into the web-browser to upload (or use the [command-line uploader](https://github.com/9001/copyparty/tree/hovudstraum/bin#up2kpy)) +drag files/folders into the web-browser to upload (or use the [command-line uploader](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy)) this initiates an upload using `up2k`; there are two uploaders available: * `[🎈] bup`, the basic uploader, supports almost every browser since netscape 4.0 @@ -1374,10 +1374,10 @@ interact with copyparty using non-browser clients * `(printf 'PUT /junk?pw=wark HTTP/1.1\r\n\r\n'; cat movie.mkv) | nc 127.0.0.1 3923` * `(printf 'PUT / HTTP/1.1\r\n\r\n'; cat movie.mkv) >/dev/tcp/127.0.0.1/3923` -* python: [up2k.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) is a command-line up2k client [(webm)](https://ocv.me/stuff/u2cli.webm) +* python: [u2c.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/u2c.py) is a command-line up2k client [(webm)](https://ocv.me/stuff/u2cli.webm) * file uploads, file-search, [folder sync](#folder-sync), autoresume of aborted/broken uploads - * can be downloaded from copyparty: controlpanel -> connect -> [up2k.py](http://127.0.0.1:3923/.cpr/a/up2k.py) - * see [./bin/README.md#up2kpy](bin/README.md#up2kpy) + * can be downloaded from copyparty: controlpanel -> connect -> [u2c.py](http://127.0.0.1:3923/.cpr/a/u2c.py) + * see [./bin/README.md#u2cpy](bin/README.md#u2cpy) * FUSE: mount a copyparty server as a local filesystem * cross-platform python client available in [./bin/](bin/) @@ -1400,11 +1400,11 @@ NOTE: curl will not send the original filename if you use `-T` combined with url sync folders to/from copyparty -the commandline uploader [up2k.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#up2kpy) with `--dr` is the best way to sync a folder to copyparty; verifies checksums and does files in parallel, and deletes unexpected files on the server after upload has finished which makes file-renames really cheap (it'll rename serverside and skip uploading) +the commandline uploader [u2c.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy) with `--dr` is the best way to sync a folder to copyparty; verifies checksums and does files in parallel, and deletes unexpected files on the server after upload has finished which makes file-renames really cheap (it'll rename serverside and skip uploading) alternatively there is [rclone](./docs/rclone.md) which allows for bidirectional sync and is *way* more flexible (stream files straight from sftp/s3/gcs to copyparty, ...), although there is no integrity check and it won't work with files over 100 MiB if copyparty is behind cloudflare -* starting from rclone v1.63 (currently [in beta](https://beta.rclone.org/?filter=latest)), rclone will also be faster than up2k.py +* starting from rclone v1.63 (currently [in beta](https://beta.rclone.org/?filter=latest)), rclone will also be faster than u2c.py ## mount as drive @@ -1471,7 +1471,7 @@ when uploading files, * chrome is recommended, at least compared to firefox: * up to 90% faster when hashing, especially on SSDs * up to 40% faster when uploading over extremely fast internets - * but [up2k.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) can be 40% faster than chrome again + * but [u2c.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/u2c.py) can be 40% faster than chrome again * if you're cpu-bottlenecked, or the browser is maxing a cpu core: * up to 30% faster uploads if you hide the upload status list by switching away from the `[🚀]` up2k ui-tab (or closing it) diff --git a/bin/README.md b/bin/README.md index e6f7c6a9..f0e92560 100644 --- a/bin/README.md +++ b/bin/README.md @@ -1,4 +1,4 @@ -# [`up2k.py`](up2k.py) +# [`u2c.py`](u2c.py) * command-line up2k client [(webm)](https://ocv.me/stuff/u2cli.webm) * file uploads, file-search, autoresume of aborted/broken uploads * sync local folder to server diff --git a/bin/up2k.py b/bin/u2c.py similarity index 100% rename from bin/up2k.py rename to bin/u2c.py diff --git a/copyparty/web/svcs.html b/copyparty/web/svcs.html index 576b6050..d9350888 100644 --- a/copyparty/web/svcs.html +++ b/copyparty/web/svcs.html @@ -181,7 +181,7 @@

note: if you are on LAN (or just dont have valid certificates), add -td

{% endif %}

- you can use up2k.py to upload (sometimes faster than web-browsers) + you can use u2c.py to upload (sometimes faster than web-browsers)

diff --git a/docs/devnotes.md b/docs/devnotes.md index f04c0a5d..9e19b611 100644 --- a/docs/devnotes.md +++ b/docs/devnotes.md @@ -85,7 +85,7 @@ as a result, the hashes are much less useful than they could have been (search t however it allows for hashing multiple chunks in parallel, greatly increasing upload speed from fast storage (NVMe, raid-0 and such) -* both the [browser uploader](https://github.com/9001/copyparty#uploading) and the [commandline one](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) does this now, allowing for fast uploading even from plaintext http +* both the [browser uploader](https://github.com/9001/copyparty#uploading) and the [commandline one](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy) does this now, allowing for fast uploading even from plaintext http hashwasm would solve the streaming issue but reduces hashing speed for sha512 (xxh128 does 6 GiB/s), and it would make old browsers and [iphones](https://bugs.webkit.org/show_bug.cgi?id=228552) unsupported diff --git a/docs/rclone.md b/docs/rclone.md index c0792816..0a02b036 100644 --- a/docs/rclone.md +++ b/docs/rclone.md @@ -72,7 +72,7 @@ rclone.exe mount --vfs-cache-mode writes --vfs-cache-max-age 5s --attr-timeout 5 # sync folders to/from copyparty -note that the up2k client [up2k.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#up2kpy) (available on the "connect" page of your copyparty server) does uploads much faster and safer, but rclone is bidirectional and more ubiquitous +note that the up2k client [u2c.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy) (available on the "connect" page of your copyparty server) does uploads much faster and safer, but rclone is bidirectional and more ubiquitous ``` rclone sync /usr/share/icons/ cpp-rw:fds/ diff --git a/docs/versus.md b/docs/versus.md index 80735b39..e91758e8 100644 --- a/docs/versus.md +++ b/docs/versus.md @@ -287,7 +287,7 @@ symbol legend, * `curl-friendly ls` = returns a [sortable plaintext folder listing](https://user-images.githubusercontent.com/241032/215322619-ea5fd606-3654-40ad-94ee-2bc058647bb2.png) when curled * `curl-friendly upload` = uploading with curl is just `curl -T some.bin http://.../` * `a`/copyparty remarks: - * one-way folder sync from local to server can be done efficiently with [up2k.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py), or with webdav and conventional rsync + * one-way folder sync from local to server can be done efficiently with [u2c.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy), or with webdav and conventional rsync * can hot-reload config files (with just a few exceptions) * can set per-folder permissions if that folder is made into a separate volume, so there is configuration overhead * [event hooks](https://github.com/9001/copyparty/tree/hovudstraum/bin/hooks) ([discord](https://user-images.githubusercontent.com/241032/215304439-1c1cb3c8-ec6f-4c17-9f27-81f969b1811a.png), [desktop](https://user-images.githubusercontent.com/241032/215335767-9c91ed24-d36e-4b6b-9766-fb95d12d163f.png)) inspired by filebrowser, as well as the more complex [media parser](https://github.com/9001/copyparty/tree/hovudstraum/bin/mtag) alternative diff --git a/pyproject.toml b/pyproject.toml index dbc75b9e..c4ea0fed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,8 +51,8 @@ ftps = ["pyftpdlib", "pyopenssl"] [project.scripts] copyparty = "copyparty.__main__:main" -"up2k.py" = "copyparty.web.a.up2k:main" -"partyfuse.py" = "copyparty.web.a.partyfuse:main" +"u2c" = "copyparty.web.a.u2c:main" +"partyfuse" = "copyparty.web.a.partyfuse:main" # ===================================================================== diff --git a/scripts/copyparty-repack.sh b/scripts/copyparty-repack.sh index 8e8728c8..bfe18cea 100755 --- a/scripts/copyparty-repack.sh +++ b/scripts/copyparty-repack.sh @@ -34,7 +34,7 @@ set -e # 4823 copyparty-extras/copyparty-repack.sh # `- source files from github # -# 23663 copyparty-extras/up2k.py +# 23663 copyparty-extras/u2c.py # `- standalone utility to upload or search for files # # 32280 copyparty-extras/partyfuse.py @@ -147,7 +147,7 @@ repack sfx-lite "re no-dd no-cm no-hl gz" # copy lite-sfx.py to ./copyparty, # delete extracted source code ( cd copyparty-extras/ -mv copyparty-*/bin/up2k.py . +mv copyparty-*/bin/u2c.py . mv copyparty-*/bin/partyfuse.py . cp -pv sfx-lite/copyparty-sfx.py ../copyparty rm -rf copyparty-{0..9}*.*.*{0..9} diff --git a/scripts/pyinstaller/deps.sha512 b/scripts/pyinstaller/deps.sha512 index 5188427e..a3f4af29 100644 --- a/scripts/pyinstaller/deps.sha512 +++ b/scripts/pyinstaller/deps.sha512 @@ -7,7 +7,7 @@ fe62705893c86eeb2d5b841da8debe05dedda98364dec190b487e718caad8a8735503bf93739a7a2 132a5380f33a245f2e744413a0e1090bc42b7356376de5121397cec5976b04b79f7c9ebe28af222c9c7b01461f7d7920810d220e337694727e0d7cd9e91fa667 pywin32_ctypes-0.2.0-py2.py3-none-any.whl 3c5adf0a36516d284a2ede363051edc1bcc9df925c5a8a9fa2e03cab579dd8d847fdad42f7fd5ba35992e08234c97d2dbfec40a9d12eec61c8dc03758f2bd88e typing_extensions-4.4.0-py3-none-any.whl 4b6e9ae967a769fe32be8cf0bc0d5a213b138d1e0344e97656d08a3d15578d81c06c45b334c872009db2db8f39db0c77c94ff6c35168d5e13801917667c08678 upx-4.0.2-win32.zip -# up2k (win7) +# u2c (win7) a7d259277af4948bf960682bc9fb45a44b9ae9a19763c8a7c313cef4aa9ec2d447d843e4a7c409e9312c8c8f863a24487a8ee4ffa6891e9b1c4e111bb4723861 certifi-2022.12.7-py3-none-any.whl 2822c0dae180b1c8cfb7a70c8c00bad62af9afdbb18b656236680def9d3f1fcdcb8ef5eb64fc3b4c934385cd175ad5992a2284bcba78a243130de75b2d1650db charset_normalizer-3.1.0-cp37-cp37m-win32.whl ffdd45326f4e91c02714f7a944cbcc2fdd09299f709cfa8aec0892053eef0134fb80d9ba3790afd319538a86feb619037cbf533e2f5939cb56b35bb17f56c858 idna-3.4-py3-none-any.whl diff --git a/scripts/pyinstaller/deps.txt b/scripts/pyinstaller/deps.txt index b33280b7..755f629c 100644 --- a/scripts/pyinstaller/deps.txt +++ b/scripts/pyinstaller/deps.txt @@ -13,7 +13,7 @@ https://pypi.org/project/MarkupSafe/#files https://pypi.org/project/mutagen/#files https://pypi.org/project/Pillow/#files -# up2k (win7) additionals +# u2c (win7) additionals https://pypi.org/project/certifi/#files https://pypi.org/project/charset-normalizer/#files # cp37-cp37m-win32.whl https://pypi.org/project/idna/#files diff --git a/scripts/pyinstaller/up2k.rc b/scripts/pyinstaller/up2k.rc index 7f5e2dd3..e8767b15 100644 --- a/scripts/pyinstaller/up2k.rc +++ b/scripts/pyinstaller/up2k.rc @@ -18,9 +18,9 @@ VSVersionInfo( [StringStruct('CompanyName', 'ocv.me'), StringStruct('FileDescription', 'copyparty uploader / filesearch command'), StringStruct('FileVersion', '1.2.3'), - StringStruct('InternalName', 'up2k'), + StringStruct('InternalName', 'u2c'), StringStruct('LegalCopyright', '2019, ed'), - StringStruct('OriginalFilename', 'up2k.exe'), + StringStruct('OriginalFilename', 'u2c.exe'), StringStruct('ProductName', 'copyparty up2k client'), StringStruct('ProductVersion', '1.2.3')]) ]), diff --git a/scripts/pyinstaller/up2k.sh b/scripts/pyinstaller/up2k.sh index 73009f9e..c2e9b111 100644 --- a/scripts/pyinstaller/up2k.sh +++ b/scripts/pyinstaller/up2k.sh @@ -14,7 +14,7 @@ uname -s | grep -E 'WOW64|NT-10' && echo need win7-32 && exit 1 dl() { curl -fkLO "$1"; } cd ~/Downloads -dl https://192.168.123.1:3923/cpp/bin/up2k.py +dl https://192.168.123.1:3923/cpp/bin/u2c.py dl https://192.168.123.1:3923/cpp/scripts/pyinstaller/up2k.ico dl https://192.168.123.1:3923/cpp/scripts/pyinstaller/up2k.rc dl https://192.168.123.1:3923/cpp/scripts/pyinstaller/up2k.spec @@ -37,12 +37,12 @@ grep -E '^from .ssl_ import' $APPDATA/python/python37/site-packages/urllib3/util echo golfed } -read a b _ < <(awk -F\" '/^S_VERSION =/{$0=$2;sub(/\./," ");print}' < up2k.py) +read a b _ < <(awk -F\" '/^S_VERSION =/{$0=$2;sub(/\./," ");print}' < u2c.py) sed -r 's/1,2,3,0/'$a,$b,0,0'/;s/1\.2\.3/'$a.$b.0/ up2k.rc2 -#python uncomment.py up2k.py +#python uncomment.py u2c.py $APPDATA/python/python37/scripts/pyinstaller -y --clean --upx-dir=. up2k.spec -./dist/up2k.exe --version +./dist/u2c.exe --version -curl -fkT dist/up2k.exe -HPW:wark https://192.168.123.1:3923/ +curl -fkT dist/u2c.exe -HPW:wark https://192.168.123.1:3923/ diff --git a/scripts/pyinstaller/up2k.spec b/scripts/pyinstaller/up2k.spec index 1b88e35d..f885a3af 100644 --- a/scripts/pyinstaller/up2k.spec +++ b/scripts/pyinstaller/up2k.spec @@ -5,7 +5,7 @@ block_cipher = None a = Analysis( - ['up2k.py'], + ['u2c.py'], pathex=[], binaries=[], datas=[], @@ -60,7 +60,7 @@ exe = EXE( a.zipfiles, a.datas, [], - name='up2k', + name='u2c', debug=False, bootloader_ignore_signals=False, strip=False, diff --git a/scripts/pyinstaller/up2k.spec.sh b/scripts/pyinstaller/up2k.spec.sh index 838dadc2..0abc73a9 100644 --- a/scripts/pyinstaller/up2k.spec.sh +++ b/scripts/pyinstaller/up2k.spec.sh @@ -11,4 +11,4 @@ ex=( encodings.{zlib_codec,base64_codec,bz2_codec,charmap,hex_codec,palmos,punycode,rot_13} ); cex=(); for a in "${ex[@]}"; do cex+=(--exclude "$a"); done -$APPDATA/python/python37/scripts/pyi-makespec --version-file up2k.rc2 -i up2k.ico -n up2k -c -F up2k.py "${cex[@]}" +$APPDATA/python/python37/scripts/pyi-makespec --version-file up2k.rc2 -i up2k.ico -n u2c -c -F u2c.py "${cex[@]}" diff --git a/scripts/sfx.ls b/scripts/sfx.ls index e50b8c91..3114981b 100644 --- a/scripts/sfx.ls +++ b/scripts/sfx.ls @@ -53,7 +53,7 @@ copyparty/tcpsrv.py, copyparty/th_cli.py, copyparty/th_srv.py, copyparty/u2idx.py, -copyparty/up2k.py, +copyparty/u2c.py, copyparty/util.py, copyparty/vend, copyparty/vend/asynchat.py, @@ -62,7 +62,7 @@ copyparty/web, copyparty/web/a, copyparty/web/a/__init__.py, copyparty/web/a/partyfuse.py, -copyparty/web/a/up2k.py, +copyparty/web/a/u2c.py, copyparty/web/a/webdav-cfg.bat, copyparty/web/baguettebox.js, copyparty/web/browser.css, diff --git a/setup.py b/setup.py index e175cc03..a5eb6b7d 100755 --- a/setup.py +++ b/setup.py @@ -142,7 +142,7 @@ args = { "ftps": ["pyftpdlib", "pyopenssl"], }, "entry_points": {"console_scripts": ["copyparty = copyparty.__main__:main"]}, - "scripts": ["bin/partyfuse.py", "bin/up2k.py"], + "scripts": ["bin/partyfuse.py", "bin/u2c.py"], "cmdclass": {"clean2": clean2}, }