Reserve a direct upload slot for a local file or folder.
Pass the desired file_name. For a single file, this becomes the stored name. For a folder, this becomes the destination folder prefix. To nest further, use a path in file_name (folder/subfolder/.../name). Optionally pass retention_days (default 7, minimum 1). The name may omit an extension. Vee3 returns an upload_code.
Install the Vee3 CLI once with `npm install -g @vee3/cli` (requires Node 18+), then run `vee3-upload {upload_code} {file_or_folder_path}` in the terminal. The CLI accepts a file or a folder. A folder uploads every nested file in one command and stores each file under the reserved file_name prefix, preserving relative paths. The CLI resolves the code to signed upload URLs, streams the local file or files to Vee3 storage, and prints each stored file_name after the upload finishes. Use those file_name values in files.list_uploaded_files and other capabilities. The CLI does not need an API key. When a stored file already uses the same name, the upload stops, skips that file, or replaces it.
If installation fails with a TLS or certificate error (common on networks that inspect HTTPS traffic), use Node 22.15 or newer and run with NODE_OPTIONS=--use-system-ca, or configure npm to trust your network's root certificate.
Each file can be up to 2 GB. One folder upload can include up to 500 files. Retention is chosen at reserve time (default 7 days) and applies to every file in the folder. After each upload is detected, Vee3 bills `max(1, ceil(size_gibibytes * retention_days * 2))` tokens per file. Upload codes can be resolved within 60 minutes of reserve.
Use `files.list_uploaded_files` to list stored uploads for follow-up work.
Cost = 0 tokens to reserve. After upload completes, billing is max(1, ceil(size_gibibytes * retention_days * 2)) tokens.