iRaffe FTP Backups v1.0.25 — Configuración de Google Drive
============================================================

OBJETIVO
--------
Google Drive es un destino remoto por API. No requiere Google Drive Desktop,
no monta unidades y no usa Finder/Explorer. La aplicación descarga el archivo
FTP a staging temporal, lo sube mediante carga reanudable y elimina el staging
solo cuando Google confirma la carga completa.

1. PREPARAR GOOGLE CLOUD
------------------------
1) Entra en Google Cloud Console con la cuenta que administrará la integración.
2) Crea o selecciona un proyecto.
3) Habilita "Google Drive API".
4) Configura Google Auth Platform / pantalla de consentimiento OAuth.
5) Crea un cliente OAuth 2.0 de tipo "Aplicación web".
6) Conserva el Client ID y Client Secret.

2. URI DE REDIRECCIÓN
---------------------
En iRaffe FTP Backups abre Configuración > Destino de los respaldos > Google Drive.
La aplicación muestra la URI exacta de redirección que debes registrar en Google.

Ejemplos habituales:
  Windows: http://localhost/backup/api/google_oauth_callback.php
  macOS/MAMP: http://localhost:8888/backup/api/google_oauth_callback.php

IMPORTANTE:
- Registra en Google exactamente cada URI que vayas a usar.
- Puerto, protocolo y ruta forman parte de la URI y deben coincidir.
- Si utilizas la misma instalación desde Windows y macOS con puertos distintos,
  agrega ambas URI autorizadas al mismo cliente OAuth web.

3. CONECTAR LA CUENTA
---------------------
1) Selecciona "Google Drive" como destino.
2) Pega Client ID y Client Secret.
3) Guarda la configuración.
4) Pulsa "Conectar cuenta Google".
5) Inicia sesión y acepta el permiso solicitado por Google.

La contraseña se introduce exclusivamente en Google. iRaffe FTP Backups no la
recibe ni la almacena. El permiso utilizado es:
  https://www.googleapis.com/auth/drive.file

4. ELEGIR O CREAR LA CARPETA RAÍZ
---------------------------------
Después de conectar la cuenta puedes:
- Pulsar "Seleccionar carpeta existente" para abrir Google Picker y elegir una.
- Escribir un nombre y pulsar "Crear carpeta en Mi unidad".

La aplicación guarda el folder_id devuelto por Google. Si la carpeta cambia de
nombre en Drive, la integración continúa utilizando su ID.

5. ESTRUCTURA DE RESPALDOS
--------------------------
La carpeta seleccionada es la raíz. Debajo se crean/reutilizan carpetas por
sitio/subsitio. Ejemplo:

Respaldos FTP/
  Cardini Ghost/
    site-cardinighost...zip
  sensatoweb/
    consultoriodelamor.sensatoweb.com/
      site-consultoriodelamor...zip

6. ARCHIVOS GRANDES Y REINTENTOS
--------------------------------
Las cargas a Drive usan sesiones reanudables y bloques de 8 MiB. Si Google o
Internet fallan durante la subida, el staging temporal se conserva para que el
siguiente intento pueda continuar/subir sin volver a descargar el FTP completo.

7. SEGURIDAD Y RETENCIÓN EN v1.0.25
-----------------------------------
- Client Secret y tokens se guardan dentro de la configuración cifrada existente.
- Los endpoints de lectura no devuelven secretos/tokens al navegador.
- Drive queda en modo no destructivo en v1.0.25: no se eliminan automáticamente
  archivos de Google Drive ni archivos FTP como parte de la retención.
- El comportamiento del destino Local se mantiene independiente.

8. DESCONEXIÓN
--------------
"Desconectar Google Drive" elimina de la configuración local los tokens de acceso,
refresh token y carpeta seleccionada. Client ID/Secret permanecen configurados para
permitir una reconexión posterior. Revocar el acceso también puede hacerse desde
la seguridad de la cuenta Google.
