Object & S3-Compatible

Docs · Connect to Object Storage

Connect to Laravel Object Storage (S3-compatible) from CLI tools, desktop apps (Cyberduck/WinSCP), TrueNAS, and SDKs. This page also covers bucket management and pre-signed links.

Primary Endpoint: https://s3.claytonshouse.com  ·  Region: us-east-1
Alternate Endpoint: https://minio.claytonshouse.com
Addressing: Path-stylehttps://s3.claytonshouse.com/bucket/key

Prerequisites

  • Your Access key and Secret key (Dashboard → Buckets → “View/Rotate Credentials”).
  • Endpoint: https://s3.claytonshouse.com (or https://minio.claytonshouse.com)  ·  Region: us-east-1
  • Use Path-style URLs (recommended for S3-compatible endpoints).

CLI tools

AWS CLI
aws configure
# Access Key ID / Secret Access Key
# Default region: us-east-1
aws s3 ls --endpoint-url https://s3.claytonshouse.com
aws s3 cp ./local.zip s3://my-bucket/local.zip --endpoint-url https://s3.claytonshouse.com
MinIO Client (mc)
mc alias set myminio https://s3.claytonshouse.com YOUR_ACCESS_KEY YOUR_SECRET_KEY --api S3v4
mc mb myminio/my-bucket
mc cp ./local.zip myminio/my-bucket/local.zip

Desktop & NAS

Cyberduck (Windows/macOS)

  1. Open Connection… → Protocol: Amazon S3
  2. Server: s3.claytonshouse.com · Port: 443 · Region: us-east-1
  3. Access Key ID / Secret Access Key: your keys
  4. Click More Options → enable Path-Style URL
  5. (Optional) Path: /my-bucket or /my-bucket/folder

TrueNAS (S3 Compatible)

  1. Credentials → Backup/Cloud Credentials → Add
  2. Type: Amazon S3 Compatible
  3. Access/Secret: your keys
  4. Endpoint: https://s3.claytonshouse.com · Region: us-east-1
WinSCP (Windows)
New Site → File protocol: Amazon S3
Host name: s3.claytonshouse.com · Region: us-east-1
Advanced → S3 → Bucket addressing: Path-style (legacy)
(Optional) Default remote directory: /my-bucket

SDK examples

Python (boto3)
import boto3
s3 = boto3.client("s3",
  aws_access_key_id="YOUR_ACCESS_KEY",
  aws_secret_access_key="YOUR_SECRET_KEY",
  endpoint_url="https://s3.claytonshouse.com",
  region_name="us-east-1",
)
s3.list_buckets()
Node.js (AWS SDK v3)
const s3 = new S3Client({
  region: "us-east-1",
  endpoint: "https://s3.claytonshouse.com",
  forcePathStyle: true,
  credentials: { accessKeyId: "YOUR_ACCESS_KEY", secretAccessKey: "YOUR_SECRET_KEY" },
});

Bucket management

# Versioning
mc version enable myminio/my-bucket
aws s3api put-bucket-versioning --bucket my-bucket \
  --versioning-configuration Status=Enabled --endpoint-url https://s3.claytonshouse.com

Pre-signed URLs

aws s3 presign s3://my-bucket/local.zip --expires-in 3600 --endpoint-url https://s3.claytonshouse.com
mc share upload --expire 1h myminio/my-bucket/local.zip

Troubleshooting

Cyberduck: “Cannot read container configuration”

Cyberduck queries bucket settings (location/versioning/etc.). Ensure your user policy allows these read ops for the target bucket.

{
  "Version": "2012-10-17",
  "Statement": [
    { "Effect": "Allow", "Action": ["s3:ListAllMyBuckets"], "Resource": "*" },
    { "Effect": "Allow",
      "Action": ["s3:GetBucketLocation","s3:GetBucketVersioning","s3:GetBucketEncryption",
                 "s3:GetBucketLifecycle","s3:GetBucketTagging","s3:GetBucketPolicy",
                 "s3:GetBucketPolicyStatus","s3:GetBucketCors","s3:GetBucketAcl",
                 "s3:ListBucket","s3:ListBucketMultipartUploads"],
      "Resource": "arn:aws:s3:::my-bucket"
    },
    { "Effect": "Allow",
      "Action": ["s3:GetObject","s3:PutObject","s3:DeleteObject",
                 "s3:AbortMultipartUpload","s3:ListMultipartUploadParts",
                 "s3:GetObjectTagging","s3:PutObjectTagging"],
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}
# Apply with mc (replace names/keys)
mc alias set myminio https://minio.claytonshouse.com ADMIN_ACCESS ADMIN_SECRET --api S3v4
mc admin policy add myminio cyberduck-read-conf policy-cyberduck.json
mc admin policy set myminio cyberduck-read-conf user=YOUR_ACCESS_KEY_ID

Alternatively, set a Path in Cyberduck (e.g. /my-bucket) to skip listing all buckets.

DNS / “Host does not exist”

Use Path-style addressing. Virtual-hosted requires wildcard DNS + TLS for *.s3.claytonshouse.com.