1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Importar datos de kDrive desde iCloud
Esta guía detalla cómo importar datos de iCloud utilizando rClone en kDrive de Infomaniak.
COMPATIBILIDAD my kSuite ✗ | my kSuite+ ✗ ✔= Oferta compatible | ✗= No disponible |
Prólogo
- Como Apple no ofrece una API como sus competidores, una solución para recuperar los documentos de un iCloud Drive es instalar la app kDrive macOS para sincronizar la carpeta icloud que debe estar en tu biblioteca. La guía a continuación propone una alternativa sólida.
- kDrive admite la subida en streaming de rclone a través de WebDAV, hasta 50 Go (extensible a 100 Go) para evitar abusos, con gestión automática de errores si se supera el límite sin especificar previamente el tamaño a través de
Content-Length
.
1. Configurar rclone para el acceso a los drives
Instalación de rclone en tu ordenador
Existe una versión de rclone con interfaz gráfica (GUI) pero también es posible hacerlo por línea de comandos (CLI):
- Instala rclone desde una aplicación de tipo
Terminal
en tu dispositivo, escribiendo todo el siguiente comando:sudo -v ; curl https://rclone.org/install.sh | sudo bash
- Introduce la contraseña de tu sesión en tu ordenador para comenzar la instalación:
- Consulta el guía oficial de instalación si es necesario.
Configuración del disco remoto (iCloud) en rclone
- Una vez instalado rclone, introduce el comando
rclone config
.- Consulta el guía oficial de configuración si es necesario.
- A continuación, elige configurar una nueva importación remota respondiendo
n
paraNew remote
. - Nombra el disco remoto, por ejemplo
appledrive
: - Seleccione a continuación el tipo de disco a importar respondiendo
iclouddrive
lo que corresponde a iCloud Drive entre las opciones propuestas. - Indique a rclone el
apple_id
ingresando su Apple ID (una dirección de correo electrónico en principio). - Elija usar su propia contraseña vinculada a la cuenta de Apple ID (
y
). - Ingrese su contraseña dos veces según se le solicite:
- Responda “No”
n
a la pregunta sobre la “configuración avanzada”. - Una ventana en su dispositivo debe abrirse para advertirle de una conexión remota; autorícela:
- Una ventana en su dispositivo debe abrirse con un código 2FA; cópielo:
- Pegue el código cuando rclone se lo solicite.
- Responda “Sí”
y
a la última pregunta si toda la información presentada es correcta.
Configuración del disco de destino (kDrive) en rclone
Es posible actuar directamente sobre el archivo de configuración de rclone pegando su configuración kDrive en forma, por ejemplo:
[kDrive]
type = webdav
url = https://kDrive_ID_HERE.connect.kdrive.infomaniak.com/
vendor = other
user = user@email.com
pass = PASSWORD_HERE_OR_APP_PASSWORD_IF_2FA
Pero aquí está cómo proceder paso a paso como para la configuración anterior:
- Siempre en la terminal, ingrese
n
para una nueva configuración de disco e ingrese el nombrekDrive
para reconocer su disco de destino: - Seleccione a continuación el tipo de disco a importar respondiendo
webdav
lo que corresponde a una configuración WebDAV entre las opciones propuestas. - Introduzca la siguiente información:
url
= acceso directo a kDrive (consulte esta otra guía sobre el ID de kDrive para la URL de conexión)vendor
= rclone (la opción n.º 6)user
= dirección de correo electrónico para iniciar sesión en la cuenta de usuario de Infomaniak
- Responda "Sí"
y
a la pregunta sobre la contraseña y, a continuación, introduzca la contraseña:- contraseña de la aplicación en caso de que se haya activado la autenticación doble o la de su cuenta de usuario de Infomaniak si no ha activado la autenticación de dos factores.
- Deje en blanco el
bearer_token
y, a continuación, responda "No"n
a la pregunta sobre la "configuración avanzada". - Responda "Sí"
y
a la última pregunta y se mostrarán sus 2 discos:
2. Copiar los datos de iCloud a kDrive
Requisitos previos
- Consulte las opciones disponibles en la guía oficial antes de iniciar una importación.
Ejemplo de comando para iniciar una copia de sus datos de iCloud a la raíz de su kDrive:
sudo rclone copy appledrive: kDrive:
Esto iniciará inmediatamente la copia de sus carpetas, subcarpetas y contenido de iCloud a la carpeta personal de su kDrive de Infomaniak!
Detalles sobre las fechas de sus fotos exportadas
Si exporta sus fotos de iCloud a kDrive de Infomaniak, tenga en cuenta las metadatos de las fechas. Durante la exportación, las fechas de creación de los archivos pueden modificarse y reemplazarse por la fecha de exportación en lugar de la fecha original de la toma.
Aquí tiene un script para usuarios avanzados que permite restaurar los datos correctos de sus archivos a partir de las informaciones EXIF (se recomienda tratar lotes de 7000 fotos como máximo para evitar un fallo):
- Descargue ExifTool https://exiftool.org/index.html (paquete macOS).
- Instale la aplicación permitiendo su apertura previa si es necesario:
- Abre Script Editor (ubicado en tu carpeta Aplicaciones > Utilidades):
- Haz clic en Nuevo documento.
- Copia y pega el largo script propuesto a continuación en la ventana de Script Editor.
- Haz clic en Ejecutar para iniciar el script, se abre una ventana:
- Selecciona la carpeta a analizar.
- Deja que el script se ejecute, modificará las fechas o escribirá los errores en un archivo
errors.txt
en el escritorio.
El script a copiar y pegar completamente:
-- replace file date with EXIF creation date or date from name after the first dash -
tell application "Finder"
set FolderPath to choose folder with prompt "Select the folder containing the files to update"
my processFolder(FolderPath)
end tell
on processFolder(aFolder)
tell application "Finder"
-- process files:
set fileList to files of aFolder
repeat with eachFile in fileList
-- process a single file
set theFile to eachFile
set AppleScript's text item delimiters to {""}
set fileName to name of eachFile --get the file name
set eachFile to eachFile as string --file path
set hasDate to true --initialize date found flag
try
--get date if available
set photoDate to do shell script "/usr/local/bin/exiftool -DateTimeOriginal " & quoted form of POSIX path of eachFile
if photoDate is "" then set photoDate to do shell script "/usr/local/bin/exiftool -CreationDate " & quoted form of POSIX path of eachFile
if photoDate is "" then set photoDate to do shell script "/usr/local/bin/exiftool -CreateDate " & quoted form of POSIX path of eachFile
if photoDate is "" then
set hasDate to false --check if date was found
end if
on error
set hasDate to false -- error retrieving date
set photoDate to ""
end try
if length of photoDate > 20 then
--format extracted date
set x to (length of photoDate) - 33
set OriginalDate to text -x thru -1 of photoDate
set formattedDate to text 1 thru 5 of OriginalDate
set theYear to formattedDate
set formattedDate to formattedDate & text 7 thru 8 of OriginalDate
set theMonth to text 7 thru 8 of OriginalDate
set formattedDate to formattedDate & text 10 thru 11 of OriginalDate
set theDay to text 10 thru 11 of OriginalDate
set formattedDate to formattedDate & text 13 thru 14 of OriginalDate
set theHour to text 13 thru 14 of OriginalDate
set formattedDate to formattedDate & text 16 thru 17 of OriginalDate
set theMinute to text 16 thru 17 of OriginalDate
set formattedDate to formattedDate & "." & text 19 thru 20 of OriginalDate
set theSecond to text 19 thru 20 of OriginalDate
set newName to theYear & "-" & theMonth & "-" & theDay & " " & theHour & "." & theMinute & "." & theSecond
set testValue to formattedDate as string --check if found date is 000
if testValue is " 000000000000.00" then
set hasDate to false
else
-- set file date to original EXIF date and write to log
do shell script "touch -t " & formattedDate & " " & quoted form of POSIX path of eachFile
set logFile to open for access ((path to desktop folder as text) & "Date Found.txt") as text with write permission
write "Original date found for file: " & OriginalDate & " " & eachFile & return to logFile starting at eof
close access logFile
end if
end if
if hasDate is false then
-- get date from file name after first dash
set nb to ""
set nameDate to ""
set fileName to fileName as string
set savedDelimiters to AppleScript's text item delimiters --save delimiters
set AppleScript's text item delimiters to {"-"} --split on "-"
set nb to offset of "-" in fileName
if nb is not 0 then
set AppleScript's text item delimiters to savedDelimiters --restore delimiters
set nameDate to characters (nb + 1) thru (nb + 8) of fileName as string
set nameDate to nameDate & "1200.00"
set cmd1 to "/usr/local/bin/exiftool -datetimeoriginal=" & nameDate & " " & quoted form of POSIX path of eachFile
set cmd2 to "/usr/local/bin/exiftool -createdate=" & nameDate & " " & quoted form of POSIX path of eachFile
end if
try
-- write date from name to EXIF
do shell script cmd1
do shell script cmd2
do shell script "touch -t " & nameDate & " " & quoted form of POSIX path of eachFile
do shell script "rm " & quoted form of POSIX path of (eachFile & "_original")
on error
-- if date from name is invalid, log the error
set logFile to open for access ((path to desktop folder as text) & "Date Error.txt") as text with write permission
write "No valid date found in file name: " & eachFile & return to logFile starting at eof
close access logFile
end try
end if
end repeat
-- process folders:
set folderList to folders of aFolder
repeat with eachSubfolder in folderList
-- process a subfolder
my processFolder(eachSubfolder)
end repeat
end tell
end processFolder
tell application "Finder"
display dialog "Done! All files processed." buttons {"Close"}
end tell