Aller au contenu

FkF

Membres
  • Inscription

  • Dernière visite

  1. ok voici Je fais ce poste pour aider les autres. J'étais deg ne pas trouver de solution à cette gestion de photos, même en cherchant sur ce forum. Si cette technique peut aider, j'en suis content et donc le partage. L’idée est d’utiliser un script qui va aller chercher les photos que l’on souhaite transférer puis les déplacer en recréant la structure adaptée à Synology en termes de dates de façon automatique. 1. Vérifier que l’on a les droits en écriture sur les dossiers d’utilisateur, les paramétres..etc…pour configurer la solution. Remplacer « utilisateurX » par votre nom d’utilisateur 2. Via file station, Créer un dossier « scripts » dans homes/utilisateurX/ 3. Dans ce dossier « scripts » créer un fichier texte « transfer_photos.sh ». Ce fichier doit être encodé en UTF-8 dans ses paramétres. Sauvegarder (même si synology dit que le cryptage sélectionné est incorrect) (il faut avoir le paquet d'editeur de texte installé. On peut créer le fichier via une autre interface windows ou mac et l'importer ensuite depuis file station) 4. Créer un dossier « TRANSFERT » dans photo/ (endroit de stockage des photos espace partagé) 5. Créer une tache récurente dans parametres/planificateur de tâches/script utilisateur. Dans parametres de la tache, ecrire la commande du script défini par l’utilisateur qui est ici : sh /volume1/homes/utilisateurX/scripts/transfer_photos.sh Vous pouvez faire que la tâche s’excécute tout le temps (c’est très rapide) ou 1 fois de temps en temps. Ça ne change rien à l’interface dans synology photos mais chaque fois que la tâche est lancée, les photos seront classées correctement dans la structure de synology ds file 6. Coller le scripts ci-dessous dans le fichier texte « transfer_photos.sh ». Le script prend en compte les miniatures, crée le dossier Année/mois si besoin en fonction de la date de prise de vue des photos. Il n’écrase rien. 7. Chaque fois que vous voudrez transférer des photos. Aller dans l’appli ou sur ordi. Selectionnez vos photos. Faites déplacer vers/espace partagé…et sélectionnez le dossier TRANSFERT (ou autre nom que vous aurez donné). Lorsque la tache sera exécuté, tout sera transféré et rangé correctement. (vous pouvez aussi l’exécuter directement depuis le planificateur de tâche pour vérifier que ça marche bien. Vous avez aussi un fichier log dans scripts si vous avez des erreurs) A vous de jouer. J’ai galéré pour trouver cette solution. J’espére qu’elle fonctionnera pour vous. Code à copier #!/bin/sh # Chemins SOURCE="/volume1/photo/TRANSFERT/" # Dossier partagé où les utilisateurs déposent les photos DEST="/volume1/photo/PhotoLibrary/" # Dossier partagé de destination (classé par YYYY/MM) LOG="/volume1/homes/utilisateurX/scripts/transfer.log" # Fichier de log # Vérification des chemins echo "=== Début du script $(date) ===" > "$LOG" echo " Source : $SOURCE" >> "$LOG" echo " Destination : $DEST" >> "$LOG" echo " Log : $LOG" >> "$LOG" # Vérifie que le dossier source existe if [ ! -d "$SOURCE" ]; then echo "❌ Erreur : le dossier source n'existe pas : $SOURCE" >> "$LOG" exit 1 fi # Vérifie que le dossier destination existe if [ ! -d "$DEST" ]; then echo "❌ Erreur : le dossier destination n'existe pas : $DEST" >> "$LOG" exit 1 fi # Vérifie que le dossier de log existe LOG_DIR=$(dirname "$LOG") if [ ! -d "$LOG_DIR" ]; then echo "❌ Erreur : le dossier de log n'existe pas : $LOG_DIR" >> "$LOG" exit 1 fi # Parcours les fichiers — en incluant @eaDir find "$SOURCE" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.heic" -o -iname "*.mp4" -o -iname "*.mov" \) -print0 | while IFS= read -r -d '' file; do echo " Trouvé : $file" >> "$LOG" # Récupère la date de modification date=$(date -r "$file" +%s 2>/dev/null) if [ -z "$date" ]; then echo "❌ Erreur : pas de date pour $file" >> "$LOG" continue fi year=$(date -d @$date +%Y 2>/dev/null) month=$(date -d @$date +%m 2>/dev/null) # Crée le dossier de destination dest_dir="$DEST$year/$month/" mkdir -p "$dest_dir" echo " Créé : $dest_dir" >> "$LOG" # Si le fichier est une miniature (dans @eaDir/), crée le dossier @eaDir/IMG_4636.HEIC/ if [[ "$file" == @eaDir/ ]]; then # Extrait le nom du fichier (ex : IMG_4636.HEIC) filename=$(basename "$(dirname "$file")") # Crée le dossier @eaDir/IMG_4636.HEIC/ eaDir_dest="$dest_dir@eaDir/$filename/" mkdir -p "$eaDir_dest" echo " Créé : $eaDir_dest" >> "$LOG" # Déplace la miniature dans @eaDir/IMG_4636.HEIC/ mv "$file" "$eaDir_dest" if [ $? -eq 0 ]; then echo "✅ Déplacé : $file → $eaDir_dest" >> "$LOG" else echo "❌ Erreur : impossible de déplacer $file" >> "$LOG" fi else # Déplace la photo dans le dossier de destination mv "$file" "$dest_dir" if [ $? -eq 0 ]; then echo "✅ Déplacé : $file → $dest_dir" >> "$LOG" else echo "❌ Erreur : impossible de déplacer $file" >> "$LOG" fi fi done echo "=== Fin du script $(date) ===" >> "$LOG"
  2. Bonjour J'ai trouvé comment contourner le problème via script et planificateur de tache. Un peu chiadé comme solution mais une fois en place, c'est easy. ça intéresse encore quelqu'un ?

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.