cloud-storage-identificationlisted
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` |