Todos los artículos

Editar un archivo de un servidor SFTP en el Mac sin volver a subirlo

· 8 min de lectura

En resumen: no hace falta descargar un archivo de tu servidor, editarlo y volver a subirlo a mano. En Folia Files, conéctate una vez al servidor por SFTP y haz doble clic en el archivo dentro de la carpeta del servidor. Se abre en tu app de siempre desde una copia en tu Mac y, cada vez que guardas, Folia Files lo devuelve al servidor, después de comprobar que nadie lo ha modificado allí mientras tanto. Los envíos se siguen en Operaciones › Archivos remotos.

Aquí verás cómo configurarlo, qué aparece mientras editas y qué ocurre cuando el servidor se niega.

Por qué editar un archivo del servidor es un engorro

Con un cliente SFTP, la rutina tiene tres pasos: descargar config.php o index.html, editarlo y volver a subirlo. Si olvidas el último, el servidor sigue con la versión antigua. Si lo haces desde dos Mac, acabas sobrescribiendo sin darte cuenta el cambio de otra persona.

Montar el servidor como un disco parece más sencillo, porque el editor puede abrir el archivo directamente. Pero las apps guardan mal directamente en un disco de red: muchas escriben un archivo temporal y lo ponen en lugar del original, dejan archivos de bloqueo o esperan cada ida y vuelta con un servidor lento. El resultado puede ser un archivo que pierde su propietario y sus permisos, o un editor que se queda colgado al guardar.

Lo ideal es tener ambas cosas: un archivo local con el que tu editor trabaja a gusto y una copia en el servidor que sigue cada vez que guardas.

Paso 1: conectarse al servidor por SFTP

En la edición del sitio web de Folia Files, las conexiones SFTP pasan por rclone, una herramienta gratuita y de código abierto. Instálala una vez en Terminal con brew install rclone (si falta, la ventana de conexiones ofrece un botón para hacerlo). Después:

  1. Elige Herramientas › Conexiones (servidores y nubes)… (⌘K), haz clic en Nueva conexión y elige SFTP / SCP (SSH).
  2. Escribe la dirección del servidor, tu nombre de usuario y una contraseña o tu clave SSH (deja la contraseña vacía para usar la clave o el agente SSH).
  3. En Carpeta de partida, escribe la carpeta en la que sueles trabajar, por ejemplo /var/www. Folia Files monta todo el servidor desde su raíz: puedes subir a cualquier nivel; la carpeta de partida es simplemente la que se abre.
  4. Haz clic en Probar conexión y luego en Montar. El servidor aparece en la sección Servidores de la barra lateral.

La ventana de conexiones con una conexión SFTP a vps.alex.dev, aún sin montar, con su usuario y su carpeta de partida /var/www

Deja Solo lectura desactivado en las opciones de la conexión si quieres editar: en una conexión de solo lectura, los archivos se abren tal cual, sin nada que devolver. Si necesitas más detalles sobre rclone, las claves SSH y S3, consulta cómo conectarse a SFTP y S3 en el Mac sin macFUSE.

Paso 2: abrir el archivo y editarlo

Recorre el servidor en un panel como cualquier carpeta y luego:

  • haz doble clic en el archivo para abrirlo en su app predeterminada, o
  • haz clic derecho y elige Abrir con para usar otra app: TextEdit, BBEdit, Visual Studio Code, Nova o el editor que prefieras.

Folia Files descarga una copia de trabajo en tu Mac y la abre. Un aviso te lo indica: «“index.html” se abre desde una copia en este Mac», y añade que cada vez que guardes se volverá a enviar a tu servidor y que puedes seguirlo en Operaciones. Si la descarga tarda más de un segundo, primero verás «Abriendo “index.html”…» con el nombre del servidor.

Ahora edita y guarda como siempre con ⌘S. Más o menos un segundo después de que tu app termine de escribir, Folia Files envía el archivo. Solo muestra Guardado en el servidor cuando el servidor tiene de verdad el nuevo contenido: con SFTP, se lo pregunta directamente al servidor en lugar de fiarse del montaje.

Algunos detalles que importan en un servidor web:

  • Los permisos no cambian. El archivo se reescribe en su sitio, así que conserva su propietario y sus permisos en el servidor en lugar de recibir los de un archivo nuevo.
  • Una copia por archivo. Si vuelves a abrir el mismo archivo, se abre la misma copia de trabajo, con lo que aún no se haya enviado.
  • Solo documentos. Los archivos de hasta 200 MB pasan por una copia. Los vídeos, archivos comprimidos, imágenes de disco y apps se abren directamente desde el servidor.

Este funcionamiento está activado por omisión. La opción está en Ajustes › Archivos y red: «Editar documentos de un servidor desde una copia en este Mac, que se devuelve cada vez que guardas». Si la desactivas, los archivos se abren directamente desde el servidor y aun así puedes hacer clic derecho en un archivo y elegir Editar y devolver al servidor.

Ajustes de Folia Files, página Archivos y red: la opción para editar documentos de un servidor desde una copia en el Mac

No se limita a SFTP: lo mismo vale para los archivos de tus otras conexiones y de cualquier volumen de red montado en el Mac, como una carpeta compartida SMB o un servidor WebDAV.

Paso 3: seguir los envíos en Operaciones › Archivos remotos

Haz clic en Operaciones en la barra de herramientas (las dos flechas) o elige Ventana › Operaciones en curso (⌃⌘O). Mientras tengas archivos de un servidor abiertos, las páginas Todo y En curso muestran una sección Archivos remotos, con una línea por archivo:

  • el nombre del archivo y, debajo, la conexión y la ruta del archivo en el servidor;
  • su estado: Actualizado, Enviado a las tal hora, Enviando…, Cambios aún no enviados, Modificado en el servidor mientras tanto o el error que detuvo el último envío;
  • tres botones: Devolver al servidor, Mostrar la copia en este Mac y Terminar (elimina la copia de este Mac).

Termina un archivo cuando acabes con él. Si el servidor no tiene tu última versión, Folia Files pregunta antes: «¿Terminar sin enviar los últimos cambios?». Las copias actualizadas que llevan una semana sin cambios se retiran solas.

Cuando el servidor dice que no

El servidor se niega a escribir el archivo

Es el caso típico de un archivo de configuración que pertenece a otro usuario, como un php.ini de root cuando te conectas como alex. rclone responde con un escueto «permission denied»; Folia Files lo explica con palabras claras en el aviso y en Archivos remotos:

El servidor se niega a escribir este archivo: el usuario de la conexión no tiene permiso para modificarlo (propietario o permisos del archivo en el servidor).

Tu cambio no se pierde: se queda en tu Mac y el aviso ofrece Reintentar. Para solucionarlo, cambia el propietario o los permisos del archivo en el servidor, o conéctate con un usuario que tenga permiso para escribirlo, y vuelve a enviarlo. Lo mismo ocurre con «El servidor ya no tiene espacio para este archivo.». Si el servidor nunca confirma la recepción, verás «El servidor no ha confirmado que haya recibido el archivo. El cambio se queda en este Mac.».

Si la conexión se corta en mitad de un envío, la versión que tenía antes el servidor se conserva en tu Mac, y el botón Mostrar del aviso te lleva a ella.

Alguien ha modificado el archivo en el servidor

Antes de cada envío, Folia Files compara el archivo del servidor con el que abriste. Si ha cambiado (un compañero, un script de despliegue, otro editor), no se sobrescribe nada. Un aviso indica «“index.html” ha cambiado en el servidor» y ofrece:

  • Reemplazar la versión del servidor: tu versión sube al servidor; si Folia Files no ha visto lo que hay allí, guarda antes una copia en tu Mac;
  • Conservar ambos: tu versión se guarda al lado con el nombre «index (mi versión).html», y lo que guardes después va a ese archivo.

El servidor no está conectado

Si guardas mientras la conexión está caída, el aviso dice que el servidor no está conectado y que el cambio se conserva en este Mac. Haz clic en Conectar y devolver para volver a montarlo y enviarlo. El registro de la conexión (clic derecho en el servidor en la barra lateral › Registro de la conexión) muestra cada archivo enviado y cada fallo, algo útil cuando un problema se repite. Si los discos de red suelen bloquear tu Mac, este artículo explica por qué el Finder se cuelga con una unidad de red.

Salir con cambios que no están en el servidor

Mantén Folia Files abierto mientras editas: es él quien envía cada guardado. Si sales cuando un cambio aún no ha llegado al servidor, pregunta:

Algunos cambios en archivos remotos no están en el servidor. Se quedan en este Mac: Folia Files te las ofrecerá la próxima vez que se abra (Operaciones › Archivos remotos).

Haz clic en Cancelar para quedarte y enviarlos, o en Salir: la próxima vez que abras la app, el archivo mostrará «Cambios aún no enviados» en Archivos remotos, y el botón de la flecha lo enviará. Un cambio que quedó sin enviar en una sesión anterior y no se ha vuelto a guardar, como un archivo que el servidor sigue rechazando, no vuelve a provocar la pregunta cada vez que sales: espera en Archivos remotos hasta que lo envíes o lo termines.

Edición del sitio web y edición del Mac App Store

Todo lo anterior describe la edición del sitio web, donde SFTP funciona en cuanto rclone está instalado. La edición a través de una copia está en las dos ediciones, también para las carpetas compartidas SMB y WebDAV. En la edición del Mac App Store, las conexiones SFTP necesitan Folia Files Companion, una pequeña app gratuita, porque la sandbox de Apple no permite que una app inicie rclone.

Más sobre conexiones, nubes y edición en el sitio en la página de servidores y nubes.