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 Free / kSuite Standard
my kSuite / my kSuite+ (ik.me, etik.com, ikmail.com)
Introduzione
- Questo metodo è rivolto agli utenti esperti che desiderano trasferire i dati di iCloud su kDrive senza dover eseguire una copia manuale dei file uno per uno.
- rclone consente di configurare una sorgente iCloud Drive o iCloud Photos e, successivamente, una destinazione kDrive tramite WebDAV.
- Per accedere a iCloud con rclone è necessaria la password Apple ID e l'autenticazione a due fattori di Apple. Le password per 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 su 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
{{URL_1}} | sudo bashSe necessario, consultare la guida ufficiale all'installazione di rclone, in particolare per Windows o per un'installazione manuale.
Una volta completata l'installazione, verificare che rclone funzioni correttamente:
rclone version
2. Configurare la sorgente iCloud in rclone
Nel Terminale, avvia 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- Scegli il tipo di archiviazione
iclouddrive. - Per importare i documenti archiviati in iCloud Drive, mantieni il servizio predefinito
drive. - Per importare elementi da iCloud Photos, scegli il servizio
photosoppure crea un secondo disco remoto dedicato, ad esempioiCloudPhotos. - Inserisci il tuo Apple ID, che di solito è un indirizzo e-mail.
- Scegli di inserire la tua password e poi digita la password abituale del tuo ID Apple.
- Rispondi
nalla configurazione avanzata, a meno che non sia necessario. - Conferma la connessione dal tuo dispositivo Apple di fiducia e inserisci il codice di autenticazione a due fattori quando richiesto da rclone.
- Quando il riepilogo è corretto, rispondi
yper salvare la configurazione.
Verifica che la sorgente iCloud sia accessibile:
rclone lsd iCloudDrive:Se hai configurato una sorgente dedicata a iCloud Photos, verifica anche quella:
rclone lsd iCloudPhotos:
3. Configurare la destinazione kDrive in rclone
kDrive deve essere configurato in rclone come spazio di archiviazione WebDAV.
Riavvia la configurazione se non ti trovi più nel menu rclone:
rclone config- Scegli
nper creare un nuovo disco remoto. Assegna un nome esplicito alla destinazione, ad esempio:
kDrive- Scegli il tipo di archiviazione
webdav. Per l'URL, indica l'indirizzo WebDAV diretto al tuo kDrive:
{{URL_3}};
- Sostituisci
ID_KDRIVEcon l'identificativo del tuo kDrive; consulta questa guida, se necessario.
- Sostituisci
- Per il provider WebDAV (
vendor), scegliother. - Per l'utente (
user), indicare l'indirizzo e-mail utilizzato per accedere all'account utente Infomaniak. - Per la password, indicare:
- 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.
- Lasciare il campo
bearer_tokenvuoto. - Rispondere
nalla configurazione avanzata, a meno che non ci sia una necessità specifica. - Se il riepilogo è corretto, rispondi con
yper salvare la configurazione.
La configurazione risultante avrà un aspetto simile nel file di configurazione di rclone:
[kDrive]
type = webdav
url = {{URL_6}}
vendor = other
user = user@example.com
pass = PASSWORD_STORED_BY_RCLONELa password visualizzata nel file di configurazione di rclone non è memorizzata in chiaro quando la configurazione viene eseguita con rclone config. Se si modifica manualmente questo file, generare il valore del campo pass con il comando rclone obscure.
Verificare che la destinazione kDrive sia accessibile:
rclone lsd kDrive:
4. Copiare i dati di iCloud su kDrive
Non utilizzare sudo per i comandi di copia se la configurazione di rclone è stata creata con la sessione utente abituale. In caso contrario, rclone potrebbe cercare un'altra configurazione e non riuscire a trovare le credenziali create in precedenza.
Prima di avviare una copia completa, elenca le cartelle disponibili nella sorgente:
rclone lsd iCloudDrive:Si consiglia di eseguire un test senza trasferimento effettivo utilizzando l'opzione --dry-run:
rclone copy iCloudDrive:
kDrive:iCloudDrive --dry-run --progressSe il risultato è corretto, avvia 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: nella cartella iCloudDrive del tuo kDrive.
In caso di interruzione della connessione o del computer, ripeti 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, puoi 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 fonte dedicata a iCloud Photos, elenca innanzitutto le librerie e le cartelle disponibili:
rclone lsd iCloudPhotos:Adatta quindi il percorso di origine in base alla struttura ad albero 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 aver esportato o copiato delle 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 caricarle 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 e poi esegui lo script sottostante su macOS tramite l'applicazione Terminale.
Lo script cerca una data nei metadati del file e, in caso contrario, nel suo nome. I file corretti sono elencati in DateFound.txt e i file senza una data utilizzabile in DateError.txt, entrambi sulla scrivania.
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 aver apportato le correzioni, inviare 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 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?