Tu almacenamiento · WordPress + WooCommerce
WooCommerce AWS S3
El plugin Alter Product incluye un módulo de almacenamiento AWS S3 listo para usar. Guarda los grupos de archivos compatibles del plugin en tu propio bucket privado, conéctalo en WordPress y migra los archivos existentes con las herramientas del plugin.
Alter Product no cobra una tarifa adicional de capacidad por ampliar este almacenamiento conectado. AWS factura a tu cuenta el almacenamiento, las solicitudes y la transferencia. Siguen vigentes tu alojamiento WordPress y las reglas habituales del plan y de las sesiones embed.
Las instrucciones siguen la guía integrada en el plugin. Las etiquetas de la consola AWS se mantienen en inglés.
Almacenamiento, entrega y costes
S3 almacena los objetos de archivo del plugin. WordPress sigue siendo responsable de su entrega autorizada al navegador.
Un almacenamiento privado para el plugin
El navegador no descarga directamente de S3. WordPress obtiene y verifica los archivos del bucket privado y después los sirve mediante sus propios endpoints. Deja S3 CORS vacío y Block Public Access activado; no es un bucket público ni una conexión directa a una CDN.
El módulo abarca los grupos de archivos Alter Product compatibles. Conectar un bucket no mueve todos los archivos de WordPress ni cambia los límites de las herramientas integradas.

Pagar a AWS por los recursos utilizados
Alter Product no cobra un suplemento por aumentar la capacidad del bucket conectado. Los cargos de AWS dependen del uso, la región y la clase de almacenamiento; consulta los precios actuales de S3 en lugar de asumir una tarifa fija.
Como WordPress sirve los archivos, el tráfico también puede computar en el ancho de banda de tu alojamiento. S3 no garantiza transferencia de alojamiento nula ni un rendimiento ilimitado del servidor.
Crear un bucket con los ajustes compatibles
Los nombres de campo siguientes coinciden con la consola AWS en inglés y con la guía de configuración integrada en el plugin.
Crear un bucket de uso general
Inicia sesión en AWS, abre Amazon S3 y selecciona General purpose buckets → Create bucket. Elige una región y un nombre con letras minúsculas, números y guiones, sin puntos. Copia el nombre completo del bucket, incluido cualquier sufijo añadido por AWS.
- Aplica los ajustes de la tabla y selecciona Create bucket.
- Conserva el nombre completo del bucket, la región y el ID de 12 dígitos de la cuenta AWS del propietario.
- Deja Cross-origin resource sharing (CORS) vacío. Las solicitudes a S3 proceden del servidor WordPress.
| Campo de AWS | Ajuste |
|---|---|
| Bucket type | General purpose |
| Bucket namespace | Account Regional namespace (recomendado) |
| Object Ownership | ACLs disabled / Bucket owner enforced |
| Block Public Access | Block all public access (las cuatro opciones) |
| Bucket Versioning | Enable |
| Default encryption | Server-side encryption with Amazon S3 managed keys (SSE-S3 / AES256) |
| Bucket Key | Disable |
| Advanced settings → Object Lock | Disable |
Exigir HTTPS
Añade una regla de transporte sin hacer público el bucket ni conceder acceso a los objetos.
Añadir la política del bucket
Abre Permissions → Bucket policy → Edit. Sustituye los dos valores EXAMPLE-BUCKET por el nombre completo del bucket. Si ya existe una política, conserva sus declaraciones y añade esta regla tras revisar el documento completo.
- Revisa los mensajes del editor y selecciona Save changes.
- Confirma que la regla se ha guardado. Mantén Block all public access activado.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyInsecureTransport",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::EXAMPLE-BUCKET",
"arn:aws:s3:::EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false",
"aws:PrincipalIsAWSService": "false"
}
}
}
]
}Crear acceso IAM restringido
Usa una política dedicada a este bucket y prefijo, en lugar de AdministratorAccess o AmazonS3FullAccess.
Crear la política del plugin
En IAM → Policies → Create policy → JSON, pega el siguiente documento. Sustituye cada EXAMPLE-BUCKET por el nombre completo del bucket. El prefijo alter-product debe coincidir con Folder prefix en WordPress; cámbialo en cada Resource de objeto si eliges otro prefijo.
- Valida la política, selecciona Next y asígnale un nombre, como AlterProductS3Storage.
- Selecciona Create policy y conserva su nombre para configurar el usuario.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadRequiredBucketControls",
"Effect": "Allow",
"Action": [
"s3:GetBucketVersioning",
"s3:GetBucketOwnershipControls",
"s3:GetBucketPublicAccessBlock",
"s3:GetEncryptionConfiguration"
],
"Resource": "arn:aws:s3:::EXAMPLE-BUCKET"
},
{
"Sid": "WriteAndReadVersionedPluginObjects",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObjectVersion"
],
"Resource": [
"arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*",
"arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
]
},
{
"Sid": "RecoverJournalOwnedObjects",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*"
},
{
"Sid": "DeleteOnlyConnectionTestVersions",
"Effect": "Allow",
"Action": "s3:DeleteObjectVersion",
"Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
}
]
}Crear un usuario dedicado y una clave de acceso
Selecciona IAM → Users → Create user. Deja Provide user access to the AWS Management Console sin marcar.
- Selecciona Next → Attach policies directly y adjunta solo la política anterior. Completa Create user.
- Abre Security credentials → Access keys → Create access key de ese usuario. Para esta configuración manual del plugin, selecciona Other → Next y después Create access key.
- Guarda Access key ID y Secret access key en un gestor de contraseñas. El secreto solo se muestra una vez. Introdúcelos directamente en WordPress mediante HTTPS, no en mensajes ni capturas de pantalla.
Guardar y probar la conexión de WordPress
Abre Alter Product → Settings → Storage en el panel HTTPS de la tienda. Selecciona AWS S3 y + / Add connection.
Introducir los datos de conexión
Selecciona New connection. Las mismas instrucciones integradas están disponibles en AWS S3 setup guide.
- Selecciona Save connection y espera la confirmación.
- Selecciona Test connection. Guarda cualquier cambio antes de volver a probar.
- Revisa el resultado en el diálogo y en la columna Last connection test. Que los campos de claves queden vacíos tras guardar es intencionado.
| Campo | Valor |
|---|---|
| Bucket name | Nombre completo del bucket, no un ARN, una URL s3:// ni una dirección HTTPS; sin puntos. |
| Folder prefix | alter-product, coincidente con la política IAM. Usa letras, números, guiones, guiones bajos y carpetas separadas; sin barra inicial ni final. |
| Bucket owner AWS account ID | ID de 12 dígitos de la cuenta del propietario, sin espacios. |
| AWS region | La región real del bucket. El formulario usa eu-central-1 de forma predeterminada. |
| AWS access key ID / AWS secret access key | El par de claves guardado del usuario IAM dedicado. |
| Use temporary AWS credentials | Déjalo sin marcar para la clave de larga duración de este usuario IAM. Actívalo solo para credenciales temporales y proporciona el AWS session token. |
Si falla la prueba de conexión
Verifica el nombre, propietario y región del bucket, los ajustes requeridos y el prefijo exacto en WordPress e IAM. Mantén CORS vacío; no desactives la protección contra acceso público.
El bucket, prefijo, propietario y región guardados identifican la conexión. Para otro destino, selecciona New connection. Edit → Reconnect sustituye las credenciales conservando las mismas referencias de archivos guardadas.
Facilita a soporte el resultado de la prueba, sin claves de acceso. Es necesaria una prueba correcta antes de elegir este S3 como destino predeterminado.
Elegir el destino predeterminado y migrar archivos existentes
Elegir el destino predeterminado y migrar son acciones independientes.
Usar S3 para grupos nuevos
Selecciona Make default en la fila de la conexión guardada. El plugin prueba la conexión y solo cambia el destino predeterminado si tiene éxito. Esto se aplica a los grupos de archivos nuevos; los existentes y sus revisiones posteriores conservan el destino registrado hasta migrarse.
Mover grupos existentes compatibles
Haz una copia conjunta de la base de datos, los salts de WordPress y los archivos antes de la primera migración. Empieza en un entorno de pruebas o con un grupo pequeño. Abre Migrate en la fila S3 de destino; abrir el panel no copia archivos.
Auto migration abarca los grupos compatibles fuera del destino elegido. No garantiza migrar archivos WordPress ajenos al plugin.
- Selecciona Start migration. El plugin prueba S3, prepara cada grupo, lo copia, lo verifica y cambia sus referencias.
- Mantén la página abierta. Pause se detiene tras el grupo actual; Resume migration continúa el progreso guardado. Si cierras la página, vuelve a abrirla para reanudar el envío de tareas.
- Si falla un grupo, revisa el mensaje y Advanced, corrige la causa y reanuda. No repitas a ciegas una operación cuyo resultado de subida se desconoce.
- Tras Migration completed, prueba la lectura normal de recursos, la edición, las vistas previas y el acceso a archivos de pedidos. Los grupos creados durante el análisis pueden necesitar otra pasada.
Eliminar una fila no borra los archivos almacenados
Cambia primero el destino predeterminado si es necesario. Remove retira la conexión de la lista, pero los archivos existentes y sus credenciales guardadas siguen disponibles. No es un comando de limpieza de objetos AWS.
Compartir almacenamiento entre nodos WordPress
Un destino S3 compartido puede reducir la dependencia del disco de un solo nodo. Un balanceador de carga sigue necesitando una instalación WordPress correctamente compartida.
Requisitos para varios nodos
Para una instalación WordPress detrás de un balanceador de carga, reúne todos estos elementos:
- Un punto coherente de escritura SQL y un estado compartido de la base de datos del plugin.
- Un directorio uploads compartido para los archivos aún locales y los orígenes de migración conservados.
- Los mismos salts originales de WordPress en todos los nodos para que sigan siendo legibles las credenciales guardadas y los archivos cifrados.
- Un directorio temporal privado por nodo para las transferencias.
- Una configuración coherente del plugin y acceso al mismo bucket S3 privado y a las mismas versiones de objetos.
- Usa wpdb estándar con mysqli nativo y tablas InnoDB. No se admiten drop-ins de enrutamiento de bases de datos como HyperDB; aquí el balanceo de carga se realiza en la capa HTTP.
Mantener operativas la recuperación y la rotación de claves
Conserva juntos la base de datos, los salts y las versiones de archivos referenciadas.
Hacer copias, reconectar y verificar
Usa Edit → Reconnect para sustituir las credenciales de la misma conexión guardada. Prueba la lectura de archivos actuales e históricos antes de retirar la clave anterior, incluidas otras conexiones guardadas que todavía puedan usarla.
Mantén el versionado de S3 activado y conserva las versiones referenciadas por el plugin. No apliques una limpieza de ciclo de vida que elimine versiones históricas necesarias. Prueba la restauración conjunta de la base de datos, los salts y los archivos almacenados.
Las credenciales temporales caducan y requieren un nuevo token válido y claves; el plugin no las renueva automáticamente. Supervisa el uso de AWS y la transferencia del alojamiento a medida que crece la tienda.