signaloid-cli files
Manage files and directories in Signaloid cloud storage.
Synopsis
signaloid-cli files <command> [options]
Description
The files command group allows you to manage files in your Signaloid storage account. Upload data files, download results, organize directories, and manage file metadata.
Subcommands
- list (alias: ls) - List files in storage
- get (alias: stat) - Get file metadata without downloading
- download - Download a file from storage
- upload - Upload a file to storage
- mkdir - Create a directory
- delete (alias: rm) - Delete a file or directory
Note: Both command names work - use list or ls, get or stat, delete or rm interchangeably.
File Path Conventions
Path Format
- Paths use forward slashes:
datasets/input/data.csv - No leading slash:
data.csvnot/data.csv - Directory paths can end with
/:datasets/ordatasets
Reserved Characters
Avoid these characters in file names:
\(backslash)<>(angle brackets):(colon)"(quote)|(pipe)?(question mark)*(asterisk)
Storage Limits
Check your account's storage limits:
| Metric | Typical Limit |
|---|---|
| Max file size | 100 MB |
| Total storage | Varies by plan |
| Files per directory | 10,000 |
| Path length | 1,024 characters |
Complete Workflow Example
#!/bin/bash
set -e
# 1. Create directory structure
echo "Creating directories..."
signaloid-cli files mkdir --path datasets/input
signaloid-cli files mkdir --path datasets/output
# 2. Upload input files
echo "Uploading input data..."
signaloid-cli files upload \
--path datasets/input/data.csv \
--from ./local-data.csv
signaloid-cli files upload \
--path datasets/input/config.json \
--from ./config.json
# 3. List uploaded files
echo "Listing files..."
signaloid-cli files ls --path datasets/input
# 4. Create and run a task (assuming build exists)
BUILD_ID="bld_abc123"
TASK_RESPONSE=$(signaloid-cli tasks create \
--build-id $BUILD_ID \
--args "--input /datasets/input/data.csv")
TASK_ID=$(echo $TASK_RESPONSE | jq -r '.TaskID')
# 5. Wait for task completion
signaloid-cli tasks watch --task-id $TASK_ID
# 6. Get output and upload to storage
signaloid-cli tasks output --task-id $TASK_ID --out ./result.txt
signaloid-cli files upload \
--path datasets/output/result.txt \
--from ./result.txt
# 7. Download results
signaloid-cli files download \
--path datasets/output/result.txt \
--out ./final-results
echo "Workflow complete!"
Exit Codes
| Code | Description |
|---|---|
0 | Success |
1 | Error (file not found, permission denied, etc.) |
Troubleshooting
"File not found" Error
Problem: Cannot access specified file.
Solutions:
- List directory to verify path:
signaloid-cli files ls --path datasets/ - Check for typos in path
- Verify file exists with stat command
- Ensure proper path format (no leading slash)
"Permission denied" Error
Problem: Insufficient permissions for operation.
Solutions:
- Verify authentication:
signaloid-cli auth whoami - Check file ownership and permissions
- Ensure account has storage quota available
- Re-authenticate if session expired
Upload Failures
Problem: File upload fails or times out.
Solutions:
- Check file size is within limits
- Verify network connectivity
- Ensure sufficient storage quota
- Try uploading smaller files first
- Check file exists and is readable locally
Directory Not Empty
Problem: Cannot delete directory.
Solutions:
- Use
--recursiveflag to delete contents:signaloid-cli files rm --path dir/ --directory --recursive - Or manually delete files first:
signaloid-cli files ls --path dir/ | \
jq -r '.Files[].Path' | \
while read FILE; do
signaloid-cli files rm --path "$FILE"
done
signaloid-cli files rm --path dir/ --directory
See Also
- signaloid-cli tasks - Run computational tasks
- signaloid-cli buckets - Manage storage buckets
- signaloid-cli plot - Visualize uncertainty
Learn More
- Quick Start Guide - Get started with file operations