1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Importer des données sur kDrive depuis iCloud
Ce guide détaille comment importer des données iCloud à l'aide de rClone sur kDrive Infomaniak.
COMPATIBILITÉ my kSuite ✗‍‍ | my kSuite+ ✗‍ ✔‍= Offre compatible | ✗‍= Non disponible |
Préambule
- Apple ne proposant pas d'API comme ses concurrents, une solution pour rapatrier les documents d'un iCloud Drive est d'installer l'app kDrive macOS afin de synchroniser le dossier icloud qui doit se trouver dans votre bibliothèque. Le guide ci-dessous propose une alternative solide.
1. Configurer rclone pour l'accès aux drives
Installation de rclone sur votre ordinateur
Il existe une version de rclone avec interface graphique (GUI) mais il est tout Ă fait possible de faire cela en ligne de commande (CLI):
- Installez rclone depuis une application de type
Terminal
sur votre appareil, en tapant toute la commande suivante:sudo -v ; curl https://rclone.org/install.sh | sudo bash
- Entrez le mot de passe de votre session sur votre ordinateur pour débuter l'installation:
- Prenez connaissance du guide officiel d'installation si nécessaire.
Configuration du disque distant (iCloud) sur rclone
- Une fois rclone installé, entrez la commande
rclone config
.- Prenez connaissance du guide officiel de configuration si nécessaire.
- Choisissez ensuite de configurer une nouvelle importation à distance en répondant
n
pourNew remote
. - Nommez le disque Ă distance, par exemple
appledrive
: - Choisissez ensuite le type de disque à importer en répondant
iclouddrive
ce qui correspondant à iCloud Drive parmi les choix proposés. - Indiquez à rclone le
apple_id
en entrant votre Apple ID (une adresse mail en principe). - Choisissez d'utiliser votre propre mot de passe lié au compte Apple ID (
y
). - Entrez votre mot de passe deux fois comme demandé:
- Répondez “Non”
n
à la question sur la “configuration avancée”. - Une fenêtre sur votre appareil doit s'ouvrir pour vous prévenir d'une connexion distante ; autorisez-la:
- Une fenĂŞtre sur votre appareil doit s'ouvrir avec un code 2FA ; copiez-le:
- Collez le code quand rclone vous le demande.
- Répondez “Oui”
y
à la dernière question si toutes les informations présentées sont correctes.
Configuration du disque de destination (kDrive) sur rclone
Il est possible d'agir directement sur le fichier de configuration de rclone en y collant votre configuration kDrive sous la forme par exemple:
[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
Mais voici comment procéder étape par étape comme pour la configuration précédente:
- Toujours sur le terminal, entrez
n
pour une nouvelle configuration de disque et entrez le nomkDrive
pour reconnaitre votre disque de destination: - Choisissez ensuite le type de disque à importer en répondant
webdav
ce qui correspondant à une configuration WebDAV parmi les choix proposés. - Entrez les informations suivantes:
url
= l'accès direct au kDrive (prenez connaissance de cet autre guide au sujet de l'ID kDrive pour l'URL de connexion)vendor
= rclone (l'option n°6)user
= adresse mail de connexion au compte utilisateur Infomaniak
- Répondez “Oui”
y
pour la question sur le mot de passe puis entrez le mot de passe:- mot de passe d'application en cas de double authentification activée ou ‍celui de votre compte utilisateur Infomaniak si vous n'avez pas activé la 2FA.
- Laissez vide le
bearer_token
puis répondez “Non”n
à la question sur la “configuration avancée”. - Répondez “Oui”
y
à la dernière question et vos 2 disques s'affichent:‍
2. Copier les données de iCloud vers kDrive
Prérequis
- Consultez les options à disposition sur le guide officiel avant de démarrer une importation.
Exemple de commande permettant de lancer une copie de vos données iCloud vers la racine de votre kDrive:
sudo rclone copy appledrive: kDrive:
Ceci aura pour effet de démarrer instantanément la copie de vos dossiers, sous-dossiers et contenus iCloud vers le dossier personnel de votre kDrive Infomaniak !
Précisions concernant les dates de vos photos exportées
Si vous exportez vos photos depuis iCloud vers kDrive Infomaniak, soyez vigilant concernant les métadonnées de dates. Lors de l'exportation, les dates de création des fichiers peuvent être modifiées et remplacées par la date d'exportation au lieu de la date originale de prise de vue.
Voici un script pour utilisateurs avertis qui permet de rétablir les bonnes données à vos fichiers à partir des informations EXIF (il est recommandé de traiter des lots de 7000 photos max. pour éviter un plantage):
- Téléchargez ExifTool https://exiftool.org/index.html (MacOS Package).
- Installez l'application en autorisant son ouverture au préalable si nécessaire:
- Ouvrez Script Editor (situé dans votre dossier Applications > Utilitaires):
- Cliquez sur Nouveau document.
- Copiez-collez le long script proposé ci-dessous vers la fenêtre de Script Editor.
- Cliquez sur Exécuter pour démarrer le script, une fenêtre s'ouvre:
- Sélectionnez le dossier à analyser.
- Laissez ensuite le script tourner, il modifiera les dates ou écrira les erreurs dans un fichier errors.txt sur le bureau.
Le script à copier-coller entièrement:
-- remplace date du fichier par la date exif creation
tell application "Finder"
set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à redater"
my inspecter(Chemin)
end tell
on inspecter(un_dossier)
tell application "Finder"
-- traitement des fichiers :
set les_fichiers to files of un_dossier
repeat with chaque_fichier in les_fichiers
-- traitement d'un fichier
set lefichier to chaque_fichier
set AppleScript's text item delimiters to {""}
set nom to name of chaque_fichier --récupère le nom du fichier
set extens to document file nom in un_dossier --recupere l extension du fichier
set lextension to name extension of extens
set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
set elements to text items of nom
set nomcourt to (items 1 thru -2 of elements) as string
set ancien_nom to nomcourt
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
set chaque_fichier to chaque_fichier as string
try
set datephoto to do shell script "/usr/local/bin/exiftool -DateTimeOriginal " & quoted form of POSIX path of chaque_fichier
if datephoto is "" then set datephoto to do shell script "/usr/local/bin/exiftool -CreationDate " & quoted form of POSIX path of chaque_fichier
if datephoto is "" then set datephoto to do shell script "/usr/local/bin/exiftool -CreateDate " & quoted form of POSIX path of chaque_fichier
on error
-- Ecrit un fichier erreur sur le bureau si erreur chargement date
set lelog to open for access ((path to desktop folder as text) & "errors.txt") as text with write permission
write "Le fichier ne contient pas de date : " & chaque_fichier & return to lelog starting at eof
close access lelog
set datephoto to ""
end try
if length of datephoto > 20 then
set x to (length of datephoto) - 33
set DateOriginale to text -x thru -1 of datephoto
set ladate to text 1 thru 5 of DateOriginale
set lannee to ladate
set ladate to ladate & text 7 thru 8 of DateOriginale
set lemois to text 7 thru 8 of DateOriginale
set ladate to ladate & text 10 thru 11 of DateOriginale
set lejour to text 10 thru 11 of DateOriginale
set ladate to ladate & text 13 thru 14 of DateOriginale
set lheure to text 13 thru 14 of DateOriginale
set ladate to ladate & text 16 thru 17 of DateOriginale
set lesminutes to text 16 thru 17 of DateOriginale
set ladate to ladate & "." & text 19 thru 20 of DateOriginale
set lessecondes to text 19 thru 20 of DateOriginale
set newnom to lannee & "-" & lemois & "-" & lejour & " " & lheure & "." & lesminutes & "." & lessecondes
set xxx to ladate as string
if xxx is " 000000000000.00" then
-- Ecrit un fichier erreur sur le bureau si erreur chargement date(=0000...)
set lelog to open for access ((path to desktop folder as text) & "errors.txt") as text with write permission
write "Le fichier ne contient pas de date : " & chaque_fichier & return to lelog starting at eof
close access lelog
else
do shell script "touch -t " & ladate & " " & quoted form of POSIX path of chaque_fichier
end if
end if
if datephoto is not "" then
else
set lelog to open for access ((path to desktop folder as text) & "errors.txt") as text with write permission
write "Le fichier ne contient pas de date : " & chaque_fichier & return to lelog starting at eof
close access lelog
end if
end repeat
-- traitement des dossiers :
set les_dossiers to folders of un_dossier
repeat with chaque_dossier in les_dossiers
-- traitement d'un dossier
my inspecter(chaque_dossier)
end repeat
end tell
end inspecter
tell application "Finder"
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell