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-1Alternate Endpoint:
https://minio.claytonshouse.comAddressing: Path-style —
https://s3.claytonshouse.com/bucket/keyPrerequisites
- Your Access key and Secret key (Dashboard → Buckets → “View/Rotate Credentials”).
- Endpoint:
https://s3.claytonshouse.com(orhttps://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)
- Open Connection… → Protocol: Amazon S3
- Server:
s3.claytonshouse.com· Port:443· Region:us-east-1 - Access Key ID / Secret Access Key: your keys
- Click More Options → enable Path-Style URL
- (Optional) Path:
/my-bucketor/my-bucket/folder
TrueNAS (S3 Compatible)
- Credentials → Backup/Cloud Credentials → Add
- Type: Amazon S3 Compatible
- Access/Secret: your keys
- 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.