// Engineering Log

Protocolos de transferencia de archivos: Parte 5 — S3 y almacenamiento de objetos

Publicado el 22.09.2026

S3 (Simple Storage Service) — servicio de almacenamiento de objetos de Amazon, lanzado en 2006. Su interfaz de programación con el tiempo se convirtió en un estándar de la industria: hoy «S3» suele significar no un servicio concreto de Amazon, sino el protocolo que soportan decenas de almacenamientos, tanto en la nube como propios. Programas de copia de seguridad, CMS, sistemas de recopilación de logs y plataformas analíticas saben trabajar con S3 «de serie», por eso el almacenamiento de objetos se ha convertido en un denominador común conveniente para guardar grandes volúmenes de datos.

Objetos en lugar de archivos

Un sistema de archivos clásico es un árbol de directorios en el que un archivo se puede abrir, anexar o modificar desde el medio. El almacenamiento de objetos es más simple:

  • bucket — contenedor de nivel superior en el que residen los objetos;
  • objeto — los datos completos más metadatos (tipo, fecha, campos de usuario arbitrarios);
  • key — nombre del objeto dentro del bucket, por ejemplo backups/2026/09/db.sql.gz.

En realidad no hay directorios en S3: backups/2026/09/ es solo parte del nombre. Las interfaces muestran «carpetas», agrupando keys por el separador /. Un objeto no se puede modificar parcialmente: se sobrescribe entero. Los archivos grandes se suben por partes (multipart upload) y el almacenamiento los une en su lado.

Cómo se ve el intercambio por HTTP

Cada operación es una petición HTTP normal:

  • PUT /bucket/key — subir un objeto;
  • GET /bucket/key — obtener un objeto;
  • DELETE /bucket/key — eliminar;
  • GET /bucket?list-type=2&prefix=backups/ — obtener la lista de objetos (operación ListObjectsV2, hasta 1000 keys por petición, después — mediante un token de continuación).

No existe un método «LIST» separado en el protocolo: la lista es un GET al bucket con parámetros.

Cada petición se firma. El cliente obtiene un par de claves — un identificador (access key) y un secreto (secret key) — y según el algoritmo Signature Version 4 calcula la firma sobre el método, la ruta, los encabezados y la hora de la petición. El secreto no se transmite por la red, y una petición interceptada no se puede reutilizar pasadas unas horas. Nadie calcula la firma a mano: lo hacen los SDK, aws cli, rclone y otros clientes.

Trabajo con un almacenamiento compatible con S3

La mayoría de los clientes saben trabajar no solo con Amazon, sino con cualquier almacenamiento compatible: basta indicar la dirección del servicio (endpoint).

Con aws cli:

bash
export AWS_ACCESS_KEY_ID=tu-clave
export AWS_SECRET_ACCESS_KEY=tu-secreto

aws --endpoint-url https://s3.example.ru s3 cp db.sql.gz s3://backups/2026/09/db.sql.gz
aws --endpoint-url https://s3.example.ru s3 ls s3://backups/2026/09/

Con rclone, que es útil para sincronizar carpetas:

bash
rclone config create s3backup s3 provider=Other \
  access_key_id=tu-clave secret_access_key=tu-secreto \
  endpoint=https://s3.example.ru

rclone sync /var/backups s3backup:backups/server1 --dry-run

La bandera --dry-run muestra lo que se hará sin cambiar nada. Tras comprobar el resultado, ejecuta el comando sin ella.

Dónde obtener S3 en Rusia

Amazon S3 y Google Cloud Storage no están disponibles para empresas rusas: el pago con tarjetas de bancos rusos no funciona, y Google Cloud desde 2022 no acepta nuevos clientes de Rusia. Almacenamientos compatibles los ofrecen nubes rusas — Yandex Object Storage, VK Cloud, Selectel. Sus tarifas, clases de almacenamiento y formas de pago se analizan en la parte sobre copia de seguridad en la nube: «Copia de seguridad: Parte 3 — Almacenamientos en la nube para pequeñas empresas». Para el almacenamiento de datos personales, una nube rusa es conveniente también desde el punto de vista de la Ley 152-FZ.

Tu propio almacenamiento S3

Durante mucho tiempo la elección estándar para S3 propio fue MinIO. En 2025–2026 la situación cambió: el repositorio de la edición gratuita de MinIO fue archivado el 25 de abril de 2026; en él se indica claramente que el proyecto ya no se mantiene y que no se publican builds — solo el código fuente bajo AGPLv3. Los desarrolladores ofrecen productos comerciales AIStor. Las instalaciones ya en funcionamiento seguirán funcionando, pero no habrá correcciones de seguridad para ellas, y para proyectos nuevos es más sensato construir sobre otra solución.

Alternativas abiertas:

  • Garage — almacenamiento distribuido ligero (licencia AGPLv3), pensado para clusters pequeños de máquinas heterogéneas en distintas ubicaciones; un nodo necesita solo 1 GB de memoria.
  • SeaweedFS — sistema de archivos distribuido con gateway S3 (licencia Apache 2.0); soporta versionado, bloqueo de objetos y reglas de ciclo de vida.

Antes de elegir, verifica qué operaciones de S3 necesitan tus programas: la compatibilidad completa no la tienen todos los almacenamientos, especialmente en lo relativo a políticas de acceso y bloqueo de objetos.

Cuándo S3 conviene y cuándo no

S3 es bueno para copias de seguridad, archivos, archivos multimedia de un sitio, logs y datos para analítica — todo aquello que se escribe entero y se lee por key. No es adecuado cuando un archivo cambia continuamente por pequeñas porciones: bases de datos, documentos de trabajo con edición colaborativa, catálogos con multitud de archivos pequeños que la aplicación espera ver como un sistema de archivos normal. Para esas tareas son más adecuados SMB, NFS o WebDAV.

Errores típicos

  • Pública el bucket. Un bucket con lectura abierta es una causa frecuente de fugas. El acceso por defecto debería estar cerrado, y los archivos públicos es mejor servirlos desde un bucket separado o desde una CDN.
  • Una key para todo. Una key con permisos totales, puesta en todos los servidores, al filtrarse abre todo el almacenamiento. Crea keys separadas con permisos mínimos para cada tarea.
  • Copias sin protección contra eliminación. Si un servidor con keys está comprometido, el atacante borrará también las copias de seguridad. Activa versionado o Object Lock si el almacenamiento lo soporta.
  • Crecimiento infinito. Sin reglas de ciclo de vida, las versiones antiguas y las cargas multipart sin finalizar se acumulan y aumentan la factura.

// Contact

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Respondo en un día laborable (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirme que no es un bot.

Escribir y recibir una respuesta rápida