#upload #file-upload #file #dup #cli

app dup-cli

A tool to upload multiple files to a server, support tracking progress

8 releases

0.1.7 Feb 24, 2025
0.1.6 Feb 23, 2025

#194 in Command line utilities

Download history 628/week @ 2025-02-19 135/week @ 2025-02-26

763 downloads per month

MIT/Apache

27KB
547 lines

dup-cli is a command line tool to upload files to a server that supports multiple file uploads parallelly.

How to use:

1. Add dup-cli to your system:
    - Open your terminal.
    - Type `cargo install dup-cli` and press Enter.
    - Wait for the installation to complete.
2. Add environment variables to your system if you want to use them as default:
    - `UPLOAD_URL` - The exact endpoint URL to upload files to (not just the host).
    - To set an environment variable, open your terminal and type:
        - For Linux/macOS: `export UPLOAD_URL=http://your-upload-url.com/endpoint`
        - For Windows: `setx UPLOAD_URL http://your-upload-url.com/endpoint`
3. If you want to use a specific host for a specific folder, you can use the `-H` option:
    - Example: `dup-cli -H http://hostname.com/endpoint folder_name file1 file2`

NOTES: Make sure to add the path to .cargo/bin in your PATH variable: - For Linux/macOS: Add export PATH="$HOME/.cargo/bin:$PATH" to your .bashrc or .zshrc file. - For Windows: Add the path to .cargo/bin in your system environment variables.

Example:

#### Upload a single file or multiple files:
`dup-cli README.md LICENSE.md`
#### Upload files to a specific folder:
`dup-cli -H http://hostname.com folder_name README.md LICENSE.md`

Installation:

cargo install dup-cli

Usages:

Command:
dup-cli [OPTIONS] [FILES||FOLDERS]

#### OPTIONS:
-H, --host: specify the host for a specific folder. Example: `-H http://abc.xyz/api/v1/upload`
-h, --help: print help information
-V, --version: print version information
-p, --progress: show progress bar
-c, --category: specify the category for a specific kind of upload: multipart, or binary [default: multipart] [values: multipart, binary]

Future Features

We are planning to add the following features in future releases:

  • Support for additional file transfer protocols: Including FTP, SFTP, and SCP.
  • Enhanced security features: Such as encryption of files during transfer.
  • Improved user interface: A more user-friendly command-line interface with better error messages and help documentation.
  • Integration with cloud storage services: Direct uploads to services like AWS S3, Google Cloud Storage, and Azure Blob Storage.
  • Automated retry mechanism: Automatically retry failed uploads.
  • Scheduling uploads: Schedule uploads to occur at specific times.
  • Detailed logging and reporting: More detailed logs and reports on upload activities.
  • Support for downloading and syncing: Ability to download files from the server and sync local files with the server.

Dependencies

~11–23MB
~312K SLoC