Overview
copyparty provides multiple upload methods to suit different browsers and use cases, from legacy IE6 support to modern resumable uploads with no filesize limit.up2k: Resumable Uploads
The primary upload method is up2k, a JavaScript-based resumable uploader with several advantages:Resumable
Uploads automatically resume if interrupted by network issues or browser restarts
No Size Limit
Upload files of any size, even through Cloudflare and other proxies
Multithreaded
Upload multiple chunks in parallel for maximum speed
Verified
Each chunk is checksummed - server detects corruption and requests retransmission
How up2k Works
- Files are split into chunks (dynamically sized based on file size)
- Each chunk is hashed on the client side
- Hashes are sent to the server to check what already exists
- Only missing chunks are uploaded
- Server reassembles the file from chunks
up2k has to read each file twice (once for hashing, once for uploading), but the resumability and deduplication make it worthwhile for most use cases.
Uploading Files
There are several ways to initiate an up2k upload:- Drag & Drop
- Ctrl+V
- Command Line
Drag files or folders from your file explorer directly into the browser window. The up2k uploader will automatically handle them.
Folder uploads work in modern browsers - files are added recursively.
Upload UI Features
The up2k interface provides several configuration options:- Parallel uploads: Number of chunks to upload simultaneously (increase on Android for better speed)
- 🏃 Continue analysis: Keep processing other files while one is uploading
- 🥔 Potato mode: Simplified UI for faster uploads from slow devices
- 🛡️ Overwrite mode:
🛡️Never overwrite (generate new filename)🕒Overwrite if server file is older♻️Always overwrite if files are different
- 🎲 Random filenames: Generate random filenames during upload
- 🔎 File search: Switch between upload and search mode
Upload Tabs
[ok]- Successfully completed files[ng]- Failed/rejected uploads (already exists, etc.)[done]- Combined chronological list of ok and ng[busy]- Currently hashing, pending, or uploading[que]- Queued files waiting to process
Basic Uploader (bup)
The basic uploader uses plain multipart uploads and supports browsers as old as Netscape 4.0 and IE6.The basic uploader can theoretically be up to 2x faster than up2k for files larger than RAM on slow connections, since it doesn’t need to hash files.
[🎈] bup tab.
Advanced Upload Features
Deduplication
With-e2dsa enabled, copyparty detects when uploaded content already exists:
- Client doesn’t upload anything that already exists on the server
- Server creates a symlink or hardlink to the existing file (with
--dedup) - No wasted bandwidth or disk space
- Symlinks (Default)
- Hardlinks
- Reflinks (CoW)
Unpost: Undo Uploads
Delete accidental uploads using the[🧯] unpost tab.
Self-Destruct Uploads
Files can automatically expire after a specified time.Race the Beam
Download files while they’re still uploading! This feature enables near-peer-to-peer transfers.Requires up2k uploads and
-e2d indexing enabled.File Search
Drop files into theSearch dropzone to check if they already exist on the server.
- Files are hashed client-side
- Hash is sent to server
- Server checks database for matching content
- Results show existing file locations
[🔎] switch before selecting files.
Upload Configuration
Server-Side Limits
Upload Organization
Compressed Uploads
Chunk Size Configuration
The default chunk size is calculated dynamically:- Starts at 1 MiB for small files
- Increases for larger files to keep chunk count reasonable
- Maximum ~256-4096 chunks per file