Exporta archivos a Wasabi con rclone
Usa rclone copy para exportar un directorio local a Wasabi y conservar los archivos
que ya existen solo en el destino. Luego usa rclone check --download --one-way para comparar los bytes
subidos con tus archivos locales. En esta guía se eligen un bucket privado y un prefijo específico,
se previsualiza la transferencia y se convierten los mismos comandos en una exportación repetible.
Elige un bucket y revisa los costos
Necesitas una cuenta de Wasabi, un bucket privado existente, su región de almacenamiento y claves de acceso con permisos para listar, subir y leer objetos en el prefijo elegido. Si no tienes un bucket, crea uno primero en la consola de Wasabi. Mantén desactivado el acceso público. Configurar un remoto de rclone no crea un bucket; los comandos siguientes usan uno existente de forma deliberada.
Wasabi ofrece una API compatible con S3. Sus precios estándar Pay-Go tienen un mínimo mensual de 1 TB y una duración mínima de almacenamiento de 90 días; eliminar objetos antes puede dejar cargos por los días restantes. La transferencia de salida gratuita está pensada para descargas mensuales que no superen tu volumen de almacenamiento activo, y los excesos reiterados pueden provocar límites o la suspensión del servicio. Las solicitudes gratuitas a la API también están sujetas a una política de uso razonable. Consulta las preguntas frecuentes sobre precios de Wasabi y compáralas con tu plan antes de subir datos de prueba. Una exportación pequeña no implica una factura mensual pequeña.
Configura rclone para Wasabi
Instalación
Instala rclone siguiendo sus instrucciones oficiales de instalación y luego comprueba la versión:
rclone version
Los ejemplos de shell usan Bash en Linux. Los comandos de transferencia se probaron con rclone 1.75.1 contra un servicio local compatible con S3; eso no verifica los permisos de una cuenta real de Wasabi ni la conectividad regional. Mantén el directorio de origen sin cambios durante la copia y la verificación. Estos ejemplos exportan archivos regulares, no una copia de seguridad completa del sistema de archivos con permisos y enlaces simbólicos.
Configuración
Inicia la configuración interactiva:
rclone config
Usa estos valores siguiendo la guía de configuración de rclone de Wasabi. Escribe los valores del backend y del proveedor en lugar de depender de los números del menú, que pueden cambiar:
- Crea un remoto llamado
wasabi. - Establece el backend de almacenamiento en
s3y luego el proveedor enWasabi. - Establece
env_authenfalsee introduce tu clave de acceso y tu clave secreta de Wasabi cuando se soliciten. Las indicaciones las llaman credenciales de AWS porque este es el backend de S3. - Deja
regionvacío, como indica la guía de Wasabi, y estableceendpointen la URL del servicio para la región real de tu bucket. - Deja
location_constraintvacío para este bucket existente. Se usa al crear buckets. - Establece
aclenprivate, deja las demás opciones con sus valores predeterminados y guarda el remoto.
Por ejemplo, US East 1 acepta s3.us-east-1.wasabisys.com o s3.wasabisys.com;
Ámsterdam usa s3.eu-central-1.wasabisys.com. Busca la ubicación del bucket en la
tabla de endpoints de Wasabi.
La URL de la consola no es un endpoint de S3. Una ACL privada de objeto no anula una política
pública del bucket.
Consideraciones de seguridad
Mantén las credenciales fuera de los scripts y de los argumentos de comandos de shell. Localiza el archivo de configuración que se está usando con:
rclone config file
Restringe el acceso a ese archivo y a sus copias de seguridad. Para tareas programadas, usa una ruta
explícita de configuración mediante RCLONE_CONFIG o --config;
consulta la documentación de configuración de rclone. Usa una identidad
dedicada de Wasabi con acceso limitado al bucket/prefijo previsto. Una tarea de copia no necesita
permiso para eliminar objetos del destino. La réplica opcional que se presenta más adelante en este
artículo sí lo necesita.
Copia un directorio y verifica su contenido
Copia archivos
En una misma sesión de Bash, establece una ruta local absoluta de origen y reemplaza el nombre del
bucket que aparece a continuación. Usa un prefijo reservado para esta exportación, como
exports/project-a, en lugar de la raíz del bucket:
src='/absolute/path/to/export'
dst='wasabi:your-existing-bucket/exports/project-a'
rclone lsf "$dst" --recursive
Un listado vacío puede indicar un prefijo nuevo; un código de salida distinto de cero significa que debes resolver el error antes de continuar. Previsualiza los archivos seleccionados sin subirlos:
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' --dry-run
La opción --s3-no-check-bucket impide que rclone compruebe si
existe un bucket o intente crearlo. Si el nombre del bucket está mal escrito, el acceso seguirá
fallando. --checksum compara el tamaño y las sumas de comprobación disponibles al
decidir si reemplaza un archivo. copy conserva los objetos que solo existen
en el destino, pero puede sobrescribir un objeto existente con el mismo nombre. No es una copia
de seguridad con versiones. Consulta la referencia del comando copy.
Cuando la vista previa muestre el origen y el prefijo previstos, ejecuta la copia y luego la verificación:
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' &&
rclone check "$src" "$dst" --download --one-way --exclude '*.tmp'
El contenido del directorio va directamente al prefijo: report.pdf pasa a ser
exports/project-a/report.pdf, sin un directorio export/ adicional. Los directorios
vacíos no se convierten en objetos. Un origen vacío puede completar la operación correctamente sin
transferir nada; confirma que seleccionaste los archivos esperados.
Vuelve a leer los bytes subidos
check --download lee los datos remotos y los compara con
los archivos locales. No depende únicamente de los metadatos de los objetos ni de sus ETags.
--one-way permite archivos adicionales en el destino, de acuerdo con la política
de copia. La misma exclusión debe aparecer en ambos comandos.
Una verificación correcta significa que los archivos de origen incluidos coinciden con sus contrapartes remotas en el momento de la comprobación. Una diferencia, un objeto ausente o un error de lectura produce un código de salida distinto de cero. La verificación descarga los objetos incluidos, así que reserva tiempo y ancho de banda y ten en cuenta ese tráfico según la política de transferencia de salida de Wasabi. Para un origen no vacío, el resultado esperado es un conteo de archivos coincidentes y ninguna diferencia.
Ajusta lo que se transfiere
Filtrado de archivos
El patrón entre comillas --exclude '*.tmp' omite los archivos temporales a cualquier
profundidad. Las comillas impiden que Bash expanda el patrón antes de que rclone lo reciba. Excluir
un archivo de copy deja intacta cualquier copia remota existente. Si cambias
la selección, aplica el mismo filtro a la vista previa, la copia y la
verificación.
Transferencias paralelas
Rclone usa de forma predeterminada cuatro transferencias simultáneas de archivos. Añade
--transfers=8 al comando de copia si las mediciones muestran que beneficia tu carga
de trabajo; una mayor concurrencia también puede aumentar el uso de recursos.
Consulta la opción --transfers.
Control del ancho de banda
Añade --bwlimit=10M para limitar el ancho de banda de transferencia a 10 MiB/s.
Aplícalo también a la verificación mediante descarga si debe usar el mismo límite. La
documentación sobre ancho de banda de rclone también cubre horarios.
Repite la exportación verificada
Guarda lo siguiente como export-to-wasabi.sh. Acepta el mismo origen y destino que los
comandos manuales, rechaza un directorio de origen inexistente y se detiene si falla la copia o la
verificación:
#!/usr/bin/env bash
set -euo pipefail
src=${1:?Pass a local source directory}
dst=${2:?Pass a wasabi:bucket/prefix destination}
if [[ ! -d "$src" ]]; then
printf 'Source directory does not exist: %s\n' "$src" >&2
exit 1
fi
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp'
rclone check "$src" "$dst" --download --one-way --exclude '*.tmp'
Ejecútalo con las rutas ya seleccionadas:
bash ./export-to-wasabi.sh "$src" "$dst"
Para un programador de tareas, proporciona rutas absolutas a Bash, al script, al origen y al archivo
de configuración. Asegúrate de que rclone esté en el PATH de la tarea, captura
su salida y trata un código distinto de cero como una exportación fallida. Evita ejecuciones
superpuestas. Una nueva ejecución puede reemplazar los archivos modificados, pero los archivos
eliminados localmente permanecen en el bucket. Programa este script de copia solo si ese
comportamiento de conservación se ajusta a tus necesidades.
Sincroniza archivos
Usa una réplica solo cuando deban eliminarse los archivos que existen únicamente en el destino.
Con los mismos src y dst,
rclone sync cambia solo el prefijo de destino elegido.
Si contiene old-report.pdf y este no existe localmente, copy lo
conserva y sync lo elimina. Los objetos fuera de
exports/project-a/ quedan fuera del alcance de este comando.
Previsualiza la réplica por separado:
rclone sync "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' --dry-run
Lee las eliminaciones previstas y vuelve a comprobar ambas rutas. Un origen existente pero vacío
puede eliminar todos los objetos incluidos en el prefijo de destino. Los objetos
.tmp excluidos permanecen porque este comando no usa
--delete-excluded. Una vista previa no congela el estado del origen ni del destino.
Solo si esas eliminaciones son intencionales, ejecuta:
rclone sync "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp'
Esto requiere permiso de eliminación. Los ajustes de retención de objetos pueden bloquear la eliminación, y la duración mínima de almacenamiento de Wasabi puede dejar cargos después de eliminar los objetos. Mantén esta opción separada del script de exportación que no elimina objetos.
Diagnostica una exportación fallida
Problemas comunes
- Acceso denegado: revisa las credenciales y los permisos para este bucket/prefijo. Un listado
correcto no demuestra que haya permiso de subida o descarga. Listar todos los buckets con
rclone lsd wasabi:puede estar denegado incluso si el acceso al bucket elegido funciona. - Endpoint incorrecto o errores de firma: compara el endpoint del remoto con la región del bucket y revisa el reloj del equipo. Un restablecimiento de conexión por sí solo no identifica una discrepancia de región.
- Configuración ausente en una tarea: ejecuta con la ruta prevista de
RCLONE_CONFIGo--configy confirma que el usuario de la tarea pueda leerla. - Diferencias en la verificación: mantén los archivos de origen sin cambios, confirma que ambos comandos usen los mismos filtros e investiga los nombres de archivo reportados antes de aceptar la exportación.
Depuración
Añade -v al comando que falla para obtener información a nivel de archivo.
Usa -vv para registrar información de depuración cuando sea necesario y
oculta las credenciales, las rutas sensibles y los nombres de objetos antes de compartir los
registros. Una simulación comprueba las acciones previstas; no demuestra que Wasabi vaya a autorizar
las escrituras posteriores.
Si necesitas exportar los resultados de un flujo de trabajo de Transloadit, consulta el Robot 🤖 /wasabi/store de nuestro servicio de exportación de archivos.
