---
name: S3Config
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type S3Config struct {
      Endpoint  string
      Bucket    string
      AccessKey string
      SecretKey string
      Region    string
      UseSSL    bool
  }
description: "Configura la conexion a un almacenamiento S3-compatible (AWS S3, MinIO, Wasabi, etc)."
tags: [s3, storage, config, cloud, infra]
uses_types: []
file_path: "functions/infra/s3_config.go"
---

## Ejemplo

```go
cfg := S3Config{
    Endpoint:  "s3.amazonaws.com",
    Bucket:    "mi-bucket",
    AccessKey: os.Getenv("S3_ACCESS_KEY"),
    SecretKey: os.Getenv("S3_SECRET_KEY"),
    Region:    "us-east-1",
    UseSSL:    true,
}
```

## Notas

Tipo producto. Para AWS S3 usar `Endpoint = "s3.amazonaws.com"` y la region apropiada. Para MinIO local usar `Endpoint = "minio.local:9000"` y `UseSSL = false`. Las credenciales NUNCA se hardcodean — se inyectan desde env vars o un secret manager.
