← ClaudeAtlas

cloud-storage-identificationlisted

Identifies which object-storage provider an S3-compatible target actually hits, from endpoint URLs, env vars, or Terraform provider blocks. Prevents AWS-default assumptions on GCS/DO Spaces/R2/Hetzner/B2/MinIO. Use when working with boto3, `aws_s3_bucket`, rclone, s3cmd, or S3-compatible storage.
Goodsmileduck/claude-registry · ★ 1 · DevOps & Infrastructure · score 74
Install: claude install-skill Goodsmileduck/claude-registry
# Cloud Object Storage — provider identification Prevents the AWS-default trap: assuming any `aws_s3_bucket` resource or boto3 call is hitting AWS S3 when it's actually GCS, DO Spaces, Hetzner, R2, B2, MinIO, or Azure Blob. ## When to invoke **Symptoms:** - A script uses `boto3` or the AWS SDK but you don't see `import boto3` paired with explicit AWS credentials. - A Terraform module references an `aws_s3_bucket` but the backend or provider block points elsewhere. - A `rclone` config has `provider = Other` or a custom endpoint. - The user says "the bucket" or "S3" without context. - An error message mentions an endpoint that doesn't end in `amazonaws.com`. **Failure mode this prevents:** assuming AWS S3 and recommending AWS-specific tooling (IAM policies, S3 Lifecycle rules, CloudWatch metrics, presigned URL signing v4 quirks) when the actual target is a different provider with different auth, different features, and different bugs. ## Step 1 — Identify the endpoint Endpoint URL is the most reliable identifier. Look in: `endpoint_url=` kwarg, `AWS_ENDPOINT_URL` env, Terraform `endpoints` block, rclone config, `s3cmd` config, or the explicit URL in error messages. | Endpoint pattern | Provider | Notes | |---|---|---| | `s3.<region>.amazonaws.com` / `<bucket>.s3.<region>.amazonaws.com` | **AWS S3** | Real deal. Region required in v4 signing. | | `s3-accelerate.amazonaws.com` | AWS S3 Transfer Acceleration | Different perf profile, same API. | | `storage.googleapis.com` |