s3-storage

SKILL.md

S3 Storage

File operations on S3-compatible storage (AWS S3, Cloudflare R2, MinIO).

Environment Variables

  • AWS_ACCESS_KEY_ID - Access key
  • AWS_SECRET_ACCESS_KEY - Secret key
  • AWS_DEFAULT_REGION - Region (default: us-east-1)
  • S3_ENDPOINT - Custom endpoint for R2/MinIO (optional)
  • S3_BUCKET - Default bucket name

Setup

pip3 install boto3 2>/dev/null

List objects

python3 -c "
import boto3, os
s3 = boto3.client('s3',
    endpoint_url=os.environ.get('S3_ENDPOINT'),
    region_name=os.environ.get('AWS_DEFAULT_REGION', 'us-east-1'))
resp = s3.list_objects_v2(Bucket=os.environ['S3_BUCKET'], MaxKeys=20)
for obj in resp.get('Contents', []):
    print(f\"{obj['Key']}  {obj['Size']}  {obj['LastModified']}\")
"

Upload a file

python3 -c "
import boto3, os, sys
s3 = boto3.client('s3', endpoint_url=os.environ.get('S3_ENDPOINT'))
s3.upload_file(sys.argv[1], os.environ['S3_BUCKET'], sys.argv[2])
print(f'Uploaded {sys.argv[2]}')
" /tmp/local-file.txt remote/path/file.txt

Download a file

python3 -c "
import boto3, os, sys
s3 = boto3.client('s3', endpoint_url=os.environ.get('S3_ENDPOINT'))
s3.download_file(os.environ['S3_BUCKET'], sys.argv[1], sys.argv[2])
print(f'Downloaded to {sys.argv[2]}')
" remote/path/file.txt /tmp/downloaded.txt

Notes

  • For R2, set S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com.
  • boto3 auto-reads AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from env.
Weekly Installs
2
First Seen
14 days ago
Installed on
opencode2
gemini-cli2
claude-code2
github-copilot2
codex2
kimi-cli2