cli

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 28, 2026 License: MIT

README

storageto

Upload a file, get a link. No buckets.

Command-line tool for storage.to - simple, fast file sharing.

Installation

Homebrew (macOS/Linux)
brew install storageto/tap/storageto
Using Go
go install github.com/storageto/cli/cmd/storageto@latest

Make sure ~/go/bin is in your PATH.

Pre-built Binaries

Download from Releases.

From Source
git clone https://github.com/storageto/cli.git
cd cli
make install

Usage

Upload a single file
storageto upload photo.jpg

Output:

URL:     https://storage.to/FQxyz1234
Raw:     https://storage.to/r/FQxyz1234
Size:    2.1 MB
Expires: 2026-01-29T12:00:00Z
  • URL - Human-friendly download page
  • Raw - Direct download link (for curl, wget, scripts)
Upload multiple files

Multiple files are automatically grouped into a collection:

storageto upload file1.txt file2.txt file3.txt

Or use glob patterns:

storageto upload *.log
storageto upload src/**/*.go
Large files

Files larger than 5GB are automatically uploaded in chunks with resumable multipart upload. Progress is shown during upload:

  1.2 GB / 10.0 GB (12.0%)

Press Ctrl+C to cancel - partial uploads are cleaned up automatically.

Options
Flags:
  -c, --collection   Force collection even for single file
  -v, --verbose      Show detailed progress
      --json         Output result as JSON (for scripting)
      --no-token     Run without persistent identity token
      --api string   API endpoint (default "https://storage.to")
  -h, --help         Show help
JSON output

Use --json for machine-readable output:

storageto upload photo.jpg --json
{
  "is_collection": false,
  "file_info": {
    "url": "https://storage.to/FQxyz1234",
    "raw_url": "https://storage.to/r/FQxyz1234",
    "size": 2097152,
    "human_size": "2.0 MB",
    "expires_at": "2026-01-29T12:00:00Z"
  }
}

Downloading Files

The CLI creates shareable URLs. Anyone can download:

# Direct download (follows redirect to file)
curl -LO https://storage.to/r/FQxyz1234

# Check file info first
curl -I https://storage.to/r/FQxyz1234

# Download collection as JSON manifest
curl https://storage.to/c/FQabc5678.json

Configuration

The CLI stores a persistent identity token for upload tracking:

  • Location: ~/.config/storageto/token (Linux), ~/Library/Application Support/storageto/token (macOS), %AppData%\storageto\token (Windows)
  • What it is: A random anonymous identifier (not an API key or auth token)
  • What it does: Links uploads from this machine so you can see "your recent uploads" without signup
  • Privacy: Delete the token file to reset your identity, or use --no-token for fully anonymous uploads
# Run without any identity tracking
storageto upload photo.jpg --no-token

Limits

Anonymous CLI uploads (no account):

Limit Value
Uploads per day 20
Max file size 25 GB
File expiry 3 days

With account: Higher limits based on your plan. See storage.to/pricing.

Development

Building from source
git clone https://github.com/storageto/cli.git
cd storage.to-cli
make build      # Build binary
make test       # Run tests
make install    # Install to ~/go/bin
Project structure
├── cmd/
│   └── storageto/
│       └── main.go         # Entry point
├── internal/
│   ├── api/                # API client
│   ├── cli/                # CLI commands (cobra)
│   ├── config/             # Config and token management
│   ├── upload/             # Upload logic (single + multipart)
│   └── version/            # Version info (set at build time)
├── Makefile                # Build with version injection
└── README.md
Building releases
make release

Creates binaries for:

  • macOS (Intel + Apple Silicon)
  • Linux (amd64 + arm64)
  • Windows (amd64)

License

MIT License - see LICENSE

Directories

Path Synopsis
cmd
storageto command
internal
api
cli

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL