nuwax-sync 0.1.0

Sync GitHub Release assets to Alibaba Cloud OSS
nuwax-sync-0.1.0 is not a library.

nuwax-sync

Crates.io Documentation License

A command-line tool to sync GitHub Release assets to Alibaba Cloud OSS.

Features

  • ✅ Automatically fetch the latest or specific GitHub Release
  • ✅ Concurrent file downloads (default: 3 concurrent)
  • ✅ SHA256 integrity verification
  • ✅ Automatic multipart upload for large files (>5MB)
  • ✅ Smart skip of existing files
  • ✅ Read OSS configuration from config file
  • ✅ Detailed progress logging

Installation

cargo install nuwax-sync

Quick Start

Using Environment Variables

# Set required environment variables
export OSS_ACCESS_KEY_ID="your_access_key"
export OSS_ACCESS_KEY_SECRET="your_secret_key"

# Sync the latest release
nuwax-sync --repo https://github.com/nuwax-ai/mcp-proxy

Using Configuration File

Create a config.toml file:

[oss]
endpoint = "oss-rg-china-mainland.aliyuncs.com"
bucket_name = "your-bucket"
cdn_domain = ""  # optional
path_prefix = ""  # optional
upload_timeout_seconds = 1800  # optional

Then run:

export OSS_ACCESS_KEY_ID="your_access_key"
export OSS_ACCESS_KEY_SECRET="your_secret_key"

nuwax-sync --repo https://github.com/nuwax-ai/mcp-proxy

Usage

nuwax-sync [OPTIONS] --repo <URL>

Options:
  -C, --config <FILE>    Config file path [default: config.toml]
  -r, --repo <URL>       GitHub repository URL, e.g., https://github.com/owner/repo
  -t, --tag <TAG>        Specify release tag, default: latest
  -p, --prefix <PREFIX>  OSS directory prefix (default: repo name)
      --temp-dir <DIR>   Temporary download directory [default: ./temp_downloads]
  -c, --concurrent <N>   Concurrent downloads [default: 3]
      --retry <N>        Download retry count [default: 3]
      --skip-existing    Skip existing files [default: true]
      --force            Force re-download and upload
  -h, --help             Print help
  -V, --version          Print version

Examples

Sync Latest Release

nuwax-sync --repo https://github.com/nuwax-ai/mcp-proxy

Sync Specific Version

nuwax-sync \
  --repo https://github.com/nuwax-ai/mcp-proxy \
  --tag v1.0.0

Custom OSS Directory

nuwax-sync \
  --repo https://github.com/nuwax-ai/mcp-proxy \
  --prefix custom/path

Force Re-upload

nuwax-sync \
  --repo https://github.com/nuwax-ai/mcp-proxy \
  --force

Environment Variables

Variable Required Description Default
OSS_ACCESS_KEY_ID Alibaba Cloud Access Key ID -
OSS_ACCESS_KEY_SECRET Alibaba Cloud Access Key Secret -
OSS_ENDPOINT OSS Endpoint From config file
OSS_BUCKET_NAME Bucket name From config file
OSS_CDN_DOMAIN CDN domain ""
OSS_PATH_PREFIX Global path prefix ""
OSS_UPLOAD_TIMEOUT Upload timeout (seconds) 3600
GITHUB_TOKEN GitHub token ""

Note: Environment variables have higher priority than config file values.

OSS Directory Structure

After syncing, files are organized as:

{bucket_name}/
└── {repo_name}/
    └── {version_tag}/
        ├── file1.zip
        ├── file2.tar.gz
        └── ...

Example: syncing https://github.com/nuwax-ai/mcp-proxy v0.1.28:

nuwa-packages/
└── mcp-proxy/
    └── v0.1.28/
        ├── source.tar.gz
        ├── mcp-proxy-aarch64-apple-darwin
        └── ...

Download URLs

Files can be accessed via:

https://{bucket_name}.{endpoint}/{repo_name}/{version_tag}/{filename}

Example:

https://nuwa-packages.oss-rg-china-mainland.aliyuncs.com/mcp-proxy/v0.1.28/source.tar.gz

License

Apache License 2.0