Base de conocimientos
1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Importar datos a kDrive desde iCloud
Esta guía explica cómo importar datos de iCloud Drive o iCloud Photos a kDrive de Infomaniak utilizando rclone.
✘ NO DISPONIBLE con
kSuite Free / kSuite Standard
my kSuite / my kSuite+ (ik.me, etik.com, ikmail.com)
Prólogo
- Este método está dirigido a usuarios avanzados que desean transferir datos de iCloud a kDrive sin tener que realizar una copia manual de cada archivo.
- rclone permite configurar una fuente iCloud Drive o iCloud Photos y, a continuación, un destino kDrive a través de WebDAV.
- Para acceder a iCloud con rclone, se requiere la contraseña habitual del ID de Apple y la autenticación de dos factores de Apple. Las contraseñas de aplicación de Apple no son aceptadas para esta configuración.
- Es posible que la autenticación de iCloud deba renovarse periódicamente con
rclone reconnectorclone config. - El comando
rclone copycopia los archivos a kDrive sin eliminarlos de la fuente de iCloud.
1. Instalar rclone
rclone se puede instalar a través de la línea de comandos. En macOS, Linux o BSD, abra la aplicación Terminal y ejecute el siguiente comando:
sudo -v ; curl {{URL_1}} | sudo bashSi es necesario, consulte la guía oficial de instalación de rclone, especialmente para Windows o para una instalación manual.
Una vez finalizada la instalación, compruebe que rclone responde correctamente:
rclone version
2. Configurar la fuente de iCloud en rclone
En Terminal, inicie la configuración de rclone:
rclone config- Elija
npara crear un nuevo disco remoto (Nuevo disco remoto). Asigne un nombre descriptivo a esta fuente, por ejemplo:
iCloudDrive- Elija el tipo de almacenamiento
iclouddrive. - Para importar documentos almacenados en iCloud Drive, mantenga el servicio predeterminado
drive. - Para importar elementos desde iCloud Photos, elija el servicio
photoso cree un segundo disco remoto dedicado, por ejemplo,iCloudPhotos. - Indique su ID de Apple, que normalmente es una dirección de correo electrónico.
- Elija la opción de introducir su propia contraseña y, a continuación, introduzca la contraseña habitual de su ID de Apple.
- Responda
na la configuración avanzada, a menos que tenga alguna necesidad específica. - Valide la conexión desde su dispositivo Apple de confianza y, a continuación, introduzca el código de autenticación de dos factores cuando rclone lo solicite.
- Cuando el resumen sea correcto, responda
ypara guardar la configuración.
Compruebe que la fuente de iCloud es accesible:
rclone lsd iCloudDrive:Si ha configurado una fuente dedicada a las fotos de iCloud, compruebe también esta:
rclone lsd iCloudPhotos:
3. Configurar el destino kDrive en rclone
kDrive debe configurarse en rclone como un almacenamiento WebDAV.
Reinicie la configuración si ya no se encuentra en el menú de rclone:
rclone config- Elija
npara crear un nuevo disco remoto. Asigne un nombre descriptivo al destino, por ejemplo:
kDrive- Seleccione el tipo de almacenamiento
webdav. Para la URL, indique la dirección web directa a su kDrive:
{{URL_3}}- Reemplace
ID_KDRIVEpor el identificador de su kDrive; consulte esta otra guía si es necesario.
- Reemplace
- Para el proveedor WebDAV (
vendor), elijaother. - Para el usuario (
user), indique la dirección de correo electrónico para acceder a la cuenta de usuario de Infomaniak. - Para la contraseña, indique:
- una contraseña de aplicación si la autenticación de dos factores está activada en la cuenta de Infomaniak;
- la contraseña de la cuenta de usuario de Infomaniak si la autenticación de dos factores no está activada.
- Deje el campo
bearer_tokenvacío. - Responda
na la configuración avanzada, a menos que tenga una necesidad específica. - Si el resumen es correcto, responda
ypara guardar la configuración.
La configuración resultante se verá así en el archivo de configuración de rclone:
[kDrive]
type = webdav
url = {{URL_6}}
vendor = other
user = user@example.com
pass = PASSWORD_STORED_BY_RCLONELa contraseña que se muestra en el archivo de configuración de rclone no se guarda en texto plano cuando la configuración se realiza con rclone config. Si modifica este archivo manualmente, genere el valor del campo pass con el comando rclone obscure.
Compruebe que el destino kDrive es accesible:
rclone lsd kDrive:
4. Copiar los datos de iCloud a kDrive
No utilice sudo para los comandos de copia si la configuración de rclone se creó con su sesión de usuario habitual. De lo contrario, es posible que rclone busque otra configuración y no encuentre los accesos creados anteriormente.
Antes de iniciar una copia completa, enumere las carpetas disponibles en el origen:
rclone lsd iCloudDrive:Se recomienda realizar una prueba sin transferencia real con --dry-run:
rclone copy iCloudDrive: kDrive:iCloudDrive --dry-run --progressSi el resultado es correcto, inicie la copia:
rclone copy iCloudDrive: kDrive:iCloudDrive --progress --transfers 4 --checkers 8 --retries 5 --low-level-retries 10 --log-level INFO --log-file "$HOME/Desktop/rclone-kdrive-import.log"Este comando copia los directorios, subdirectorios y archivos de la fuente iCloudDrive: al directorio iCloudDrive de su kDrive.
En caso de interrupción de la conexión o del equipo, vuelva a ejecutar el mismo comando. rclone reanudará la comparación y evitará copiar los archivos que ya estén presentes, siempre que su tamaño y la información disponible coincidan.
Para verificar la coherencia del volumen copiado, puede comparar la fuente y el destino por tamaño:
rclone check iCloudDrive: kDrive:iCloudDrive --size-only --one-way --progress
Copiar fotos de iCloud
Si ha configurado una fuente dedicada a iCloud Photos, primero enumere las bibliotecas y carpetas disponibles:
rclone lsd iCloudPhotos:A continuación, adapte la ruta de origen según la estructura de árbol mostrada por rclone. Ejemplo:
rclone copy iCloudPhotos: kDrive:iCloudPhotos --dry-run --progressLuego, inicie la copia si el resultado de la prueba es correcto:
rclone copy iCloudPhotos: kDrive:iCloudPhotos --progress --transfers 4 --checkers 8 --retries 5 --low-level-retries 10 --log-level INFO --log-file "$HOME/Desktop/rclone-kdrive-photos.log"
5. Corrija las fechas de las fotos si es necesario
Después de una exportación o copia de fotos, las fechas del sistema de los archivos podrían no coincidir con la fecha original de la toma. Si la visualización cronológica no es correcta, puede corregir las fechas en una copia local de los archivos antes de enviarlos definitivamente a kDrive.
Trabaje siempre en una copia local de los archivos antes de ejecutar un script de corrección. El script que se muestra a continuación no se ejecuta directamente en una fuente remota de rclone: procesa una carpeta que se encuentra en el ordenador.
Para preparar una carpeta local para su corrección, copie, por ejemplo, las fotos en una carpeta temporal en el escritorio:
rclone copy iCloudPhotos: "$HOME/Desktop/iCloud-Photos" --progressA continuación, instale ExifTool desde https://exiftool.org/index.html y ejecute el script que se muestra a continuación en macOS desde la aplicación Terminal.
El script busca una fecha en los metadatos del archivo y, a continuación, en su nombre. Los archivos corregidos se enumeran en DateFound.txt y los archivos sin una fecha utilizable en DateError.txt, en el escritorio.
El script que debe copiar y pegar íntegramente:
/bin/bash <<'BASH'
#!/bin/bash
set -u
ROOT="$(osascript -e 'POSIX path of (choose folder with prompt "Select the folder containing the files to update")')" || exit 0
DESKTOP="$HOME/Desktop"
LOG_FOUND="$DESKTOP/DateFound.txt"
LOG_ERROR="$DESKTOP/DateError.txt"
: > "$LOG_FOUND"
: > "$LOG_ERROR"
find_exiftool() {
if command -v exiftool >/dev/null 2>&1; then
command -v exiftool
return 0
fi
if [ -x "/usr/local/bin/exiftool" ]; then
printf '%s\n' "/usr/local/bin/exiftool"
return 0
fi
if [ -x "/opt/homebrew/bin/exiftool" ]; then
printf '%s\n' "/opt/homebrew/bin/exiftool"
return 0
fi
return 1
}
EXIFTOOL="$(find_exiftool)" || {
printf '%s\n' "ExifTool not found. Install it, then run the script again." >> "$LOG_ERROR"
printf '%s\n' "ExifTool not found. Check DateError.txt on the desktop."
exit 1
}
if [ ! -d "$ROOT" ]; then
printf 'Invalid folder: %s\n' "$ROOT" >> "$LOG_ERROR"
printf '%s\n' "Invalid folder. Check DateError.txt on the desktop."
exit 1
fi
get_exif_date() {
"$EXIFTOOL" -s3 -d "%Y:%m:%d %H:%M:%S" -DateTimeOriginal -CreateDate -MediaCreateDate -TrackCreateDate -CreationDate -ModifyDate -- "$1" 2>/dev/null | awk '/^[0-9]{4}:[0-9]{2}:[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/ { print substr($0, 1, 19); exit }'
}
get_name_date() {
local name
name="$(basename "$1")"
if [[ "$name" =~ ([12][0-9]{3})[-_]?([01][0-9])[-_]?([0-3][0-9])([_\ -]?([0-2][0-9])[-_\.]?([0-5][0-9])[-_\.]?([0-5][0-9]))? ]]; then
local year="${BASH_REMATCH[1]}"
local month="${BASH_REMATCH[2]}"
local day="${BASH_REMATCH[3]}"
local hour="12"
local minute="00"
local second="00"
if [ -n "${BASH_REMATCH[5]:-}" ]; then
hour="${BASH_REMATCH[5]}"
minute="${BASH_REMATCH[6]}"
second="${BASH_REMATCH[7]}"
fi
printf '%s:%s:%s %s:%s:%s\n' "$year" "$month" "$day" "$hour" "$minute" "$second"
return 0
fi
return 1
}
is_valid_date() {
date -j -f "%Y:%m:%d %H:%M:%S" "$1" "+%Y:%m:%d %H:%M:%S" >/dev/null 2>&1
}
to_touch_date() {
printf '%s' "$1" | sed -E 's/^([0-9]{4}):([0-9]{2}):([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$/\1\2\3\4\5.\6/'
}
write_metadata() {
local file="$1"
local date_value="$2"
"$EXIFTOOL" -overwrite_original "-DateTimeOriginal=$date_value" "-CreateDate=$date_value" "-ModifyDate=$date_value" -- "$file" >/dev/null 2>&1 || true
}
process_file() {
local file="$1"
local date_value=""
local source=""
date_value="$(get_exif_date "$file")"
if [ -n "$date_value" ]; then
source="EXIF"
else
date_value="$(get_name_date "$file")"
if [ -n "$date_value" ]; then
source="file name"
fi
fi
if [ -n "$date_value" ] && is_valid_date "$date_value"; then
local touch_value
touch_value="$(to_touch_date "$date_value")"
if [ "$source" != "EXIF" ]; then
write_metadata "$file" "$date_value"
fi
if touch -t "$touch_value" "$file" 2>/dev/null; then
printf '%s | %s | %s\n' "$source" "$date_value" "$file" >> "$LOG_FOUND"
else
printf 'Unable to update file date: %s\n' "$file" >> "$LOG_ERROR"
fi
else
printf 'No valid date found: %s\n' "$file" >> "$LOG_ERROR"
fi
}
while IFS= read -r -d '' file; do
case "$file" in
*.json|*_original) continue ;;
esac
process_file "$file"
done < <(find "$ROOT" -type f -print0)
printf '%s\n' "Done. Check DateFound.txt and DateError.txt on the desktop."
BASHDespués de la corrección, envíe la carpeta local corregida a kDrive:
rclone copy "$HOME/Desktop/iCloud-Photos" kDrive:iCloudPhotos --progress --transfers 4 --checkers 8 --retries 5 --low-level-retries 10
6. Acceder a los datos desde kDrive
Una vez finalizada la copia, podrá acceder a sus datos desde la aplicación web kDrive, las aplicaciones móviles de kDrive y los dispositivos sincronizados con la aplicación de escritorio kDrive.
Si también utiliza la aplicación de escritorio kDrive, espere a que finalice la sincronización local antes de mover o cambiar el nombre de las carpetas importadas.
Enlace a esta FAQ: https://faq.infomaniak.com/2515
¿Le ha sido útil esta FAQ?