=== RR Media Offload for S3 / S3-compatible storage ===
Contributors: rrcomputing, rvalverde
Tags: amazon s3, media offload, cloudfront, cdn, wordpress media
Requires at least: 6.0
Tested up to: 7.0
Stable tag: 1.0.1
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Descarga la biblioteca multimedia de WordPress a S3 y acelera tu sitio con CDN, menos carga del servidor y mejor rendimiento.

== Descripción ==

**RR Media Offload para S3** (con tecnología de WPtoCloud) sube automáticamente todos los archivos de tu biblioteca de medios de WordPress a un bucket de S3 o compatible con S3.

Las imágenes, los vídeos y todas las miniaturas generadas se almacenan en S3 y se pueden servir directamente desde el almacenamiento en la nube o a través de una CDN como CloudFront.

Esto reduce el uso del disco, mejora el rendimiento y permite que su sitio web escale con mayor facilidad.

La configuración es sencilla y solo lleva unos minutos gracias al asistente paso a paso integrado.

== Funcionalidades ==

- Carga automática de nuevos archivos multimedia a Amazon S3
- Carga de todas las miniaturas y variantes de srcset
- Compatibilidad con imágenes, vídeos y todos los tipos de medios de WordPress
- Reescritura de URL para servir archivos desde S3 o CDN
- Compatible con CloudFront y dominios CDN personalizados
- Eliminación local opcional de archivos tras la carga
- Asistente de configuración paso a paso (bucket, IAM, CDN)
- Panel de estado con métricas de carga y estado de S3
- Funciona con buckets privados de S3 (mediante CDN)
- Compatible con instalaciones multisitio
- Disponible en traducción (inglés, español, francés, portugués, catalán)

== Servicios externos ==

**Este plugin NO carga archivos remotos de servidores de terceros.**

Todos los recursos del plugin (JavaScript, CSS, imágenes) se incluyen localmente en el directorio del plugin. El plugin no utiliza CDN externas para su funcionamiento.

**Este plugin te permite conectar tu propia cuenta de Amazon S3.**

Al configurar el plugin con tus credenciales de AWS, se conecta a:

- **Almacenamiento S3 o compatible con S3**: para subir y almacenar tus archivos multimedia en tu propio bucket.
- **CDN (opcional)**: para distribuir contenido a través de una CDN como Amazon CloudFront u otra distribución de CDN compatible.

El plugin también funciona con otros servicios que implementan la API de S3 (almacenamiento de objetos compatible con S3). Si prefieres usar un proveedor alternativo, configura el plugin con el punto final y las credenciales de dicho proveedor. Entre los proveedores compatibles más comunes se incluyen:

- MinIO (autohospedado)
- DigitalOcean Spaces
- Wasabi
- Backblaze B2 (API S3)
- Linode Object Storage
- Scaleway Objects
- Ceph (puerta de enlace RADOS)
- IBM Cloud Object Storage (modo compatible con S3)
- Oracle Cloud (puerta de enlace compatible con S3; puede requerir ajustes)
- Cloudian, DreamObjects, Exoscale

Notas para proveedores compatibles con S3:

- Es posible que deba configurar un `endpoint` personalizado (por ejemplo, `https://nyc3.digitaloceanspaces.com`).

- Algunos proveedores requieren `use_path_style_endpoint => true` o una `signature_version` específica (generalmente `v4`).

- Verifique con su proveedor el comportamiento de CORS, ACL/lectura pública y los límites de carga multipartes grandes. - Si la interfaz de usuario del plugin no muestra un campo para el punto final, puede agregarlo en la configuración del plugin o puedo modificarlo para agregar la opción "Punto final S3 personalizado".

== Instrucciones específicas del proveedor ==

A continuación, encontrará notas breves y específicas del proveedor para ayudarle a configurar el plugin al usar almacenamiento de objetos compatible con S3.

=== DigitalOcean Spaces ===
- Ejemplo de punto final: https://nyc3.digitaloceanspaces.com (reemplace nyc3 con su región)
- Cree un Espacio en el panel de control de DigitalOcean y genere la clave de acceso/clave secreta en API -> Claves de Espacios.

- Use el punto final anterior en el campo "Punto final" del plugin y deje "Cualquiera" en "Región" (el SDK usará el punto final).

- CORS: permita GET, HEAD, PUT, POST y configure el origen a su sitio si es necesario.

- Objetos públicos: configure el Espacio como público o use URL firmadas a través de su CDN.

=== MinIO (autoalojado) ===
- Ejemplo de endpoint: https://minio.example.com:9000
- MinIO suele requerir `use_path_style_endpoint => true`; habilite "Forzar path-style" en la configuración del plugin.

- Asegúrese de que TLS esté configurado para producción y que los nombres de los buckets cumplan con las reglas DNS.

- Use el cliente MinIO (`mc`) para crear buckets y probar las cargas:

- `mc alias set myminio https://minio.example.com ACCESSKEY SECRET`

- `mc mb myminio/my-bucket`

=== Wasabi ===
- Ejemplo de endpoint: https://s3.us-west-1.wasabisys.com (específico de la región)
- Use el endpoint del proveedor en el plugin y no habilite path-style a menos que Wasabi lo indique.

- Consulte la documentación de Wasabi para obtener información sobre las políticas de buckets y la configuración CORS.

=== Backblaze B2 (compatible con S3) ===
- Los puntos de acceso de Backblaze S3 son específicos de la región, por ejemplo, `https://s3.us-west-002.backblazeb2.com`.

- Utilice el punto de acceso y sus claves de estilo S3; pruebe con el botón "Probar conexión" del plugin.

=== Almacenamiento de objetos de Linode ===
- Ejemplo de punto de acceso: https://us-east-1.linodeobjects.com
- Utilice el punto de acceso en la configuración; Linode admite el estilo de host virtual de forma predeterminada, por lo que normalmente no se necesita el estilo de ruta.

=== Proveedores personalizados / Otros proveedores compatibles con S3 ===
- Si su proveedor expone una API compatible con S3, normalmente necesitará:

- `endpoint` (obligatorio)

- `clave de acceso` y `clave secreta`

- Opcionalmente, `use_path_style_endpoint => true` para gateways antiguos o autogestionados.
- Problemas comunes: discrepancia en la versión de la firma (asegúrese de que sea `v4`), restricciones CORS o límites específicos del proveedor para cargas multipartes.

Si encuentra problemas, copie el endpoint y las claves del proveedor en la configuración del plugin y use "Probar conexión". Si la prueba falla, habilite path-style e inténtelo de nuevo, o comparta el mensaje de error para obtener más ayuda.

**Datos que se envían:**

- Archivos multimedia subidos por su sitio WordPress (imágenes, vídeos, miniaturas)
- Solicitudes a la API utilizando sus credenciales de AWS para administrar su bucket
- ​​Todas las conexiones se realizan únicamente a sus recursos de AWS configurados

**Requisitos de la cuenta de AWS:**

Debe crear su propia cuenta de AWS y configurar su propio bucket de S3 y, opcionalmente, una distribución de CloudFront. El plugin no proporciona estos servicios; simplemente conecta WordPress con los servicios de AWS que usted configure.

**Seguridad de las credenciales:**

- Sus credenciales de AWS se almacenan cifradas en su base de datos de WordPress.
- Las credenciales se utilizan ÚNICAMENTE para comunicarse con su propia cuenta de AWS.
- No se envía ningún dato a servidores de terceros ni al desarrollador del plugin.

**Las URL que se muestran en el panel de administración del plugin son solo enlaces informativos:**

El asistente de configuración muestra enlaces en los que puede hacer clic para ayudarle a abrir las páginas correctas de la consola de AWS:

- `https://s3.console.aws.amazon.com/s3/home` - Abre su consola de AWS S3 (para crear un bucket).

- `https://console.aws.amazon.com/iam/home#/users` - Abre su consola de IAM (para crear claves de acceso).

- `https://console.aws.amazon.com/cloudfront/home` - Abre su consola de CloudFront (configuración opcional de CDN).

Estas son URL estándar de la consola de AWS que se proporcionan como guía para el usuario. No son dependencias externas cargadas por el entorno de ejecución del plugin.

**Ejemplo de marcador de posición mostrado en el asistente de configuración:**

El asistente muestra un ejemplo de formato de URL de CloudFront como `https://d1ab2cde.cloudfront.net` a modo de referencia visual. Este es solo un ejemplo; no es un punto final real. El plugin solo utiliza la URL de CDN que usted configure con su propio dominio de CloudFront.

**Más información:**

- Términos del servicio de AWS: https://aws.amazon.com/service-terms/
- Aviso de privacidad de AWS: https://aws.amazon.com/privacy/

== Instalación ==

1. Suba el plugin al directorio /wp-content/plugins/ o instálelo desde el repositorio de WordPress.

2. Active el plugin a través del menú Plugins.
3. Ve a **WPtoCloud -> Ajustes**
4. Configura tu bucket de S3 y tus credenciales de IAM
5. (Opcional) Configura una URL de CloudFront o CDN

== Preguntas frecuentes ==

= ¿Qué hace este plugin? =
Sube automáticamente los archivos multimedia de WordPress a Amazon S3 y los sirve desde el almacenamiento en la nube.

= ¿Es compatible con CloudFront? =
Sí, puedes configurar una URL de CDN para una entrega rápida.

= ¿Se migran los archivos existentes? =
No. La versión gratuita solo gestiona las nuevas subidas.

= ¿Puedo eliminar archivos locales? =
Sí, puedes habilitar la eliminación automática una vez que el archivo se haya subido a S3.

= ¿Funciona con buckets privados? =
Sí, cuando se usa con CloudFront o una CDN compatible.

= ¿Son seguras las credenciales de AWS? =
Sí. Se almacenan cifradas en tu base de datos de WordPress.

= ¿Qué es WPtoCloud? =
WPtoCloud es la plataforma detrás de RR Media Offload, que ofrece funciones avanzadas y herramientas premium para la gestión de medios en la nube.

== Actualiza a WPtoCloud Pro ==

Desbloquea funciones avanzadas con **WPtoCloud Pro**:

- Migración masiva de medios a Amazon S3
- Herramientas de automatización avanzadas
- Limpieza de medios de WooCommerce
- Informes y monitorización detallados
- Soporte prioritario

Obtén WPtoCloud Pro:
https://www.wptocloud.com

== Registro de cambios ==
= 1.0.0 =
- Versión inicial

= 1.0.1 =
- Se agregó compatibilidad con proveedores compatibles con S3: DigitalOcean Spaces, MinIO, Wasabi, Backblaze, Linode y una opción personalizada.

- Nuevas configuraciones: `Proveedor S3`, `Punto final` y `Forzar estilo de ruta`.

- `RRCM_Media_Offload_S3_Manager` ahora acepta un punto final personalizado y `use_path_style_endpoint` cuando está configurado.
- Se agregó un botón de "Probar conexión" en la pantalla de configuración para verificar las credenciales y el punto final.

- Cambios mínimos y compatibles con versiones anteriores: la configuración de AWS existente no se ve afectada.

- Se corrigieron errores de traducción en el código del plugin (se corrigieron las cadenas de i18n de WordPress).

== Aviso de actualización ==
= 1.0.1 =
- Consulte el registro de cambios anterior para obtener más detalles.