# Caché de Amazon S3





El almacenamiento de caché `s3` sube la caché de compilación resultante al [servicio de almacenamiento de archivos Amazon S3](https://aws.amazon.com/s3/) u otros servicios compatibles con S3, como [MinIO](https://min.io/).

Este backend de almacenamiento de caché no es compatible con el controlador `docker` predeterminado. Para usar esta función, crea un nuevo constructor (builder) usando un controlador diferente. Consulta [Controladores de compilación](/build/builders/drivers/) para obtener más información.

## Sinopsis

```console
$ docker buildx build --push -t <user>/<image> \
  --cache-to type=s3,region=<region>,bucket=<bucket>,name=<cache-image>[,parameters...] \
  --cache-from type=s3,region=<region>,bucket=<bucket>,name=<cache-image> .
```

La siguiente tabla describe los parámetros CSV disponibles que puedes pasar a `--cache-to` and `--cache-from`.

| Nombre               | Opción                  | Tipo        | Predeterminado | Descripción                                                                     |
| -------------------- | ----------------------- | ----------- | -------------- | ------------------------------------------------------------------------------- |
| `region`             | `cache-to`,`cache-from` | String      |                | Requerido. Ubicación geográfica.                                                |
| `bucket`             | `cache-to`,`cache-from` | String      |                | Requerido. Nombre del bucket de S3.                                             |
| `name`               | `cache-to`,`cache-from` | String      | `buildkit`     | Nombre de la imagen de caché.                                                   |
| `endpoint_url`       | `cache-to`,`cache-from` | String      |                | Endpoint del bucket de S3.                                                      |
| `prefix`             | `cache-to`,`cache-from` | String      |                | Prefijo para anteponer a todos los nombres de archivo.                          |
| `blobs_prefix`       | `cache-to`,`cache-from` | String      | `blobs/`       | Prefijo para anteponer a los nombres de archivo de los blobs.                   |
| `upload_parallelism` | `cache-to`              | Integer     | `4`            | Número de subidas de capas en paralelo.                                         |
| `touch_refresh`      | `cache-to`              | Time        | `24h`          | Intervalo para actualizar la marca de tiempo de las capas de caché sin cambios. |
| `manifests_prefix`   | `cache-to`,`cache-from` | String      | `manifests/`   | Prefijo para anteponer a los nombres de archivo del manifiesto.                 |
| `use_path_style`     | `cache-to`,`cache-from` | Boolean     | `false`        | Cuando es `true`, usa `bucket` en la URL en lugar del nombre de host.           |
| `access_key_id`      | `cache-to`,`cache-from` | String      |                | Consulta [autenticación][1].                                                    |
| `secret_access_key`  | `cache-to`,`cache-from` | String      |                | Consulta [autenticación][1].                                                    |
| `session_token`      | `cache-to`,`cache-from` | String      |                | Consulta [autenticación][1].                                                    |
| `mode`               | `cache-to`              | `min`,`max` | `min`          | Capas de caché a exportar, consulta [modo de caché][2].                         |
| `ignore-error`       | `cache-to`              | Boolean     | `false`        | Ignorar los errores causados por exportaciones de caché fallidas.               |

[1]: #autenticacion
[2]: /build/cache/backends/#modo-de-cache

## Autenticación

Buildx puede reutilizar las credenciales de AWS existentes, configuradas mediante un archivo de credenciales o variables de entorno, para subir y descargar la caché en S3. Alternativamente, puedes usar los atributos `access_key_id`, `secret_access_key` y `session_token` para especificar las credenciales directamente en la CLI.

Consulta el documento [SDK de AWS para Go, especificación de credenciales (Specifying Credentials)][3] para obtener detalles sobre la autenticación utilizando variables de entorno y el archivo de credenciales.

[3]: https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/configure-gosdk.html#specifying-credentials

## Lecturas adicionales

Para una introducción al almacenamiento en caché, consulta [Caché de compilación de Docker](/build/backends/).

Para obtener más información sobre el backend de caché `s3`, consulta el [README de BuildKit](https://github.com/moby/buildkit#s3-cache-experimental).

