Skip to main content

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

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.csv not /data.csv
  • Directory paths can end with /: datasets/ or datasets

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:

MetricTypical Limit
Max file size100 MB
Total storageVaries by plan
Files per directory10,000
Path length1,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

CodeDescription
0Success
1Error (file not found, permission denied, etc.)

Troubleshooting

"File not found" Error

Problem: Cannot access specified file.

Solutions:

  1. List directory to verify path:
    signaloid-cli files ls --path datasets/
  2. Check for typos in path
  3. Verify file exists with stat command
  4. Ensure proper path format (no leading slash)

"Permission denied" Error

Problem: Insufficient permissions for operation.

Solutions:

  1. Verify authentication: signaloid-cli auth whoami
  2. Check file ownership and permissions
  3. Ensure account has storage quota available
  4. Re-authenticate if session expired

Upload Failures

Problem: File upload fails or times out.

Solutions:

  1. Check file size is within limits
  2. Verify network connectivity
  3. Ensure sufficient storage quota
  4. Try uploading smaller files first
  5. Check file exists and is readable locally

Directory Not Empty

Problem: Cannot delete directory.

Solutions:

  1. Use --recursive flag to delete contents:
    signaloid-cli files rm --path dir/ --directory --recursive
  2. 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

Learn More