Configurando carpeta OneDrive / GoogleDrive para tu servidor Linux con RClone


#1

1. Introducción

A continuación explicamos cómo configurar un acceso a una carpeta Microsoft OneDrive, de manera que sea podamos montar la carpeta y funcionar con ella como una carpeta regular, todo ello usando RClone.

El artículo explica los pasos para configurar Microsoft OneDrive pero debería valer para configurar un acceso de GoogleDrive y otros proveedores similares.

El artículo se divide en dos partes: la primera se destina a configurar el acceso. La segunda parte se centra en cómo usar accesos configurados para montaje permanente y consulta.

2. Configuración de acceso para RClone

  1. Descargamos desde:

    https://rclone.org/downloads/

  2. En el momento de este procedimiento, la descarga fue:

    >> wget https://downloads.rclone.org/v1.54.0/rclone-v1.54.0-linux-amd64.deb
    >> dpkg -i rclone-v1.54.0-linux-amd64.deb
    
  3. Arrancamos la configuración rclone y pulsamos “new remote”:

    >> rclone config
    n) New remote
    s) Set configuration password
    q) Quit config
    n/s/q> n
    
  4. Metemos un nombre a la configuración (carpeta_remota, iqos, volumen, recurso1, en definitiva, una etiqueta corta):

    name> iqos
    
  5. A continuación seleccionamos el driver:

    Storage> onedrive
    
  6. A continuación pulsamos enter para meter un usuario vacío (lo dejamos en blanco, tal y como recomiendan):

    client_id> <enter>
    
  7. A continuación pulsamos enter para meter una contraseña vacía (lo dejamos en blanco, tal y como recomiendan):

    client_secret> <enter>
    
  8. A continuación, para cuentas onedrive, introducimos “global”:

    region> global
    
  9. A continuación llegará a un punto en el que hay que darle un token (tras decirle que no queremos configuración avanzada y que es una configuración con headless):

    Edit advanced config? (y/n)
    y) Yes
    n) No (default)
    y/n> n
    Remote config
    Use auto config?
     * Say Y if not sure
     * Say N if you are working on a remote or headless machine
    y) Yes (default)
    n) No
    y/n> y
    If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=K_DwxxxxxxSw
    Log in and authorize rclone for access
    Waiting for code...
    
  10. A continuación, mapeamos con ssh el mismo puerto que salga en el mensaje anterior (en este ejemplo 53682):

    >> ssh -L 53682:localhost:53682 nombre-de-la-maquina-donde-los-estamos-configurando.com -l aspl -X -C
    
  11. Una vez conectemos correctamente con ssh, abrir un navegador en el equipo cliente (escritorio) con la url que nos indicaban:

    http://127.0.0.1:53682/auth?state=K_DwJubkWxxxxxxxFSw

  12. Al acceder nos llegará al a web de Onedrive de microsoft, ahí nos autenticaremos con el usuario y la contraseña del OneDrive en cuestión, y si todo va correcto, saldrá lo siguiente:

    Success!
    All done. Please go back to rclone.

  13. Tras esto, podemos cerrar ese navegador y volver al terminal del servidor. Ahí aparecerá que recibió el código y nos por el tipo de unidad “onedrive”, y nos pedirá seleccionar la unidad a conectar (normalmente 0) y si es correcto:

    Got code
    Choose a number from below, or type in an existing value
     1 / OneDrive Personal or Business
       \ "onedrive"
     2 / Root Sharepoint site
       \ "sharepoint"
     3 / Sharepoint site name or URL (e.g. mysite or https://contoso.sharepoint.com/sites/mysite)
       \ "url"
     4 / Search for a Sharepoint site
       \ "search"
     5 / Type in driveID (advanced)
       \ "driveid"
     6 / Type in SiteID (advanced)
       \ "siteid"
     7 / Sharepoint server-relative path (advanced, e.g. /teams/hr)
       \ "path"
    Your choice> onedrive
    Found 1 drives, please select the one you want to use:
    0:  (personal) id=12xxx0c
    Chose drive to use:> 0
    Found drive 'root' of type 'personal', URL: https://onedrive.live.com/?cid=121xxxx0c
    Is that okay?
    y) Yes (default)
    n) No
    y/n> y
    
  14. A continuación nos mostrará la configuración de token, y si estamos conformes. Decimos que sí y salimos:

    [iqos]
    type = onedrive
    region = global
    token = {"access_token":"EwBgA8eubqaXKSxxxxxkt4$","expiry":"2021-02-17T13:15:05.867679694+01:00"}
    drive_id = 1212158039eca40c
    drive_type = personal
    --------------------
    y) Yes this is OK (default)
    e) Edit this remote
    d) Delete this remote
    y/e/d> y
    Current remotes:
    
    Name                 Type
    ====                 ====
    iqos                 onedrive
    
    e) Edit existing remote
    n) New remote
    d) Delete remote
    r) Rename remote
    c) Copy remote
    s) Set configuration password
    q) Quit config
    e/n/d/r/c/s/q> q
    
  15. Llegados a este punto ya estaría todo configurado. Ya podemos pasar a las siguientes secciones donde indicamos cómo consultar y configurar el montado.

3. Listar carpetas remotas para recursos configurados

Seleccionando una de las configuraciones, ejecutar lo siguiente:

>> rclone lsd iqos:/
           -1 2020-09-09 13:41:06         0 Documentos
           -1 2020-08-28 13:22:25         0 Imágenes
           -1 2020-10-12 21:16:20         1 iqos
           -1 2021-02-11 13:12:16         0 iqos_aspl

4. Montar carpeta remota de manera permanente

  1. Ejecutar lo siguiente:

    >> rclone mount --uid 1007 --gid 1009 --daemon --vfs-cache-mode full iqos:/iqos_aspl /var/webs/dominio.com/iqos_aspl/
    

    DONDE:

    –uid es el uid del usuario que tendrá acceso a la carpeta (usar ls -la -n para ver uids)
    –gid es el gid del usuario que tendrá acceso a la carpeta

  2. Para que el montado sea permanente, meter este comando en el /etc/rc.local antes del “exit 0

5. Desmontado de la carpeta y proceso rclone

Para desmontar una carpeta con rclone, simplemente desmontar usando umount como cualquier otra carpeta regular que haya sido montada. Esto desmontará el recurso y parará el servicio RClone asociado.