Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Importare dati su kDrive da iCloud
Questa guida spiega come importare i dati da iCloud Drive o iCloud Photos in kDrive di Infomaniak utilizzando rclone.
✘ NON DISPONIBILE con
kSuite gratuito / kSuite Standard
my kSuite / my kSuite+ (ik.me, etik.com, ikmail.com)
Introduzione
- Questo metodo è rivolto agli utenti esperti che desiderano trasferire i dati da iCloud a kDrive senza doverli copiare manualmente, file per file.
- rclone consente di configurare una sorgente iCloud Drive o iCloud Photos e quindi una destinazione kDrive tramite WebDAV.
- L'accesso a iCloud con rclone richiede la password Apple ID e l'autenticazione a due fattori di Apple. Le password delle app Apple non sono accettate per questa configurazione.
- L'autenticazione iCloud potrebbe dover essere rinnovata periodicamente con
rclone reconnectorclone config. - Il comando
rclone copycopia i file in kDrive senza eliminarli dalla sorgente iCloud.
1. Installare rclone
rclone può essere installato tramite riga di comando. Su macOS, Linux o BSD, aprire l'applicazione Terminale ed eseguire il comando seguente:
sudo -v ; curl https://rclone.org/install.sh | sudo bashConsultare la guida ufficiale all'installazione di rclone, se necessario, in particolare per Windows o per un'installazione manuale.
Una volta completata l'installazione, verificare che rclone risponda correttamente:
rclone version
2. Configurare la sorgente iCloud in rclone
Nel Terminale, avviare la configurazione di rclone:
rclone config- Scegliere
nper creare un nuovo disco remoto (Nuovo disco remoto). Assegnare un nome esplicito a questa sorgente, ad esempio:
iCloudDrive- Scegliere il tipo di archiviazione
iclouddrive. - Per importare i documenti archiviati in iCloud Drive, mantenere il servizio predefinito
drive. - Per importare gli elementi da iCloud Photos, scegliere il servizio
photosoppure creare un secondo disco remoto dedicato, ad esempioiCloudPhotos. - Indicare il proprio Apple ID, in genere un indirizzo e-mail.
- Scegliere di inserire la propria password, quindi digitare la password abituale del proprio Apple ID.
- Rispondere
nalla configurazione avanzata, a meno che non ci sia una necessità specifica. - Convalidare la connessione dal proprio dispositivo Apple di fiducia, quindi inserire il codice di autenticazione a due fattori quando rclone lo richiede.
- Quando il riepilogo è corretto, rispondere
yper salvare la configurazione.
Verificare che la sorgente iCloud sia accessibile:
rclone lsd iCloudDrive:Se si è configurata una sorgente dedicata a iCloud Photos, verificarla anch'essa:
rclone lsd iCloudPhotos:
3. Configurare la destinazione kDrive in rclone
kDrive deve essere configurato in rclone come un'archiviazione WebDAV.
Riavviare la configurazione se non ci si trova più nel menu rclone:
rclone config- Scegliere
nper creare un nuovo disco remoto. Assegnare un nome esplicito alla destinazione, ad esempio:
kDrive- Scegliere il tipo di archiviazione
webdav. - Per l'URL, indica l'indirizzo WebDAV diretto al tuo kDrive:
https://ID_KDRIVE.connect.kdrive.infomaniak.com/- Sostituisci
ID_KDRIVEcon l'identificativo del tuo kDrive; consulta questa guida, se necessario.
- Per il provider WebDAV (
vendor), scegliother. - Per l'utente (
user), indica l'indirizzo e-mail utilizzato per accedere all'account utente Infomaniak. - Per la password, indica:
- una password per l'applicazione se l'autenticazione a due fattori è attiva sull'account Infomaniak;
- la password dell'account utente Infomaniak se l'autenticazione a due fattori non è attiva.
- Lascia il campo
bearer_tokenvuoto.
- Rispondi
nalla configurazione avanzata, a meno che non sia necessario.
[kDrive]
type = webdav
url = https://ID_KDRIVE.connect.kdrive.infomaniak.com/
vendor = other
user = user@example.com
pass = PASSWORD_STORED_BY_RCLONE- Quando il riepilogo è corretto, rispondi
yper salvare la configurazione.
La configurazione risultante sarà simile a questa nel file di configurazione di rclone:
rclone lsd kDrive:
La password visualizzata nel file di configurazione di rclone non è memorizzata in chiaro quando la configurazione viene creata con rclone config. Se modifichi questo file manualmente, genera il valore del campo pass con il comando rclone obscure.
Verifica che la destinazione kDrive sia accessibile:
4. Copiare i dati iCloud su kDrive
rclone lsd iCloudDrive:Si consiglia di eseguire un test senza trasferimento effettivo utilizzando --dry-run:
rclone copy iCloudDrive: kDrive:iCloudDrive --dry-run --progressSe il risultato è corretto, avviare 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"Questo comando copia le cartelle, le sottocartelle e i file dalla sorgente iCloudDrive: alla cartella iCloudDrive del tuo kDrive.
In caso di interruzione della connessione o del computer, ripetere lo stesso comando. rclone riprenderà il confronto ed eviterà di ricopiare i file già presenti quando le loro dimensioni e le informazioni disponibili corrispondono.
Per verificare la coerenza del volume copiato, è possibile confrontare la sorgente e la destinazione in base alle dimensioni:
rclone check iCloudDrive: kDrive:iCloudDrive --size-only --one-way --progress
Copiare le foto di iCloud
Se hai configurato una sorgente dedicata a iCloud Photos, elenca prima le librerie e le cartelle disponibili:
rclone lsd iCloudPhotos:Adatta quindi il percorso di origine in base alla struttura visualizzata da rclone. Esempio:
rclone copy iCloudPhotos: kDrive:iCloudPhotos --dry-run --progressQuindi, avvia la copia se il risultato del test è corretto:
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. Correggere le date delle foto, se necessario
Dopo un'esportazione o una copia di foto, le date di sistema dei file potrebbero non corrispondere più alla data originale dello scatto. Se la visualizzazione cronologica non è corretta, è possibile correggere le date su una copia locale dei file prima di inviarle definitivamente su kDrive.
Lavora sempre su una copia locale dei file prima di eseguire uno script di correzione. Lo script riportato di seguito non viene eseguito direttamente su una sorgente remota rclone: elabora una cartella presente sul computer.
Per preparare una cartella locale da correggere, copia ad esempio le foto in una cartella temporanea sul desktop:
rclone copy iCloudPhotos: "$HOME/Desktop/iCloud-Photos" --progressInstalla quindi ExifTool da https://exiftool.org/index.html, quindi esegui lo script riportato di seguito su macOS dall'applicazione Terminal.
Lo script cerca una data nei metadati del file e, in caso non la trovi, nel nome del file. I file corretti vengono elencati in DateFound.txt e i file per i quali non è stato possibile individuare una data utile vengono elencati in DateError.txt, entrambi salvati sul desktop.
Lo script da copiare e incollare interamente:
/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."
BASHDopo la correzione, invia la cartella locale corretta a kDrive:
rclone copy "$HOME/Desktop/iCloud-Photos" kDrive:iCloudPhotos --progress --transfers 4 --checkers 8 --retries 5 --low-level-retries 10
6. Accedere ai dati da kDrive
Una volta completata la copia, i tuoi dati sono accessibili dall'app Web kDrive, dalle app mobili kDrive e dai dispositivi sincronizzati con l'app desktop kDrive.
Se utilizzi anche l'app desktop kDrive, attendi il completamento della sincronizzazione locale prima di spostare o rinominare le cartelle importate.
Link a questa FAQ: https://faq.infomaniak.com/2515
Questa FAQ è stata utile?