SMB Sync : du lecteur réseau vers Photopilot
Un petit programme qui surveille un partage SMB/Samba (comme une machine StyleShoots) et téléverse automatiquement les dossiers photo comme shoots et packshots.
Un petit programme qui surveille un partage SMB/Samba (comme une machine StyleShoots) et téléverse automatiquement les dossiers photo comme shoots et packshots.
Les dossiers nommés S-<numéro de set> (p. ex. S-1234) sont téléversés comme shoot pour ce set.
Tout autre dossier est considéré comme un article : un EAN/barcode scanné ou un numéro d'article public. Les photos avec back, side ou label dans le nom de fichier sont associées à cette vue — ou via votre propre motif, voir ci-dessous.
Pour les configurations StyleShoots qui déposent tous les fichiers en vrac dans le dossier : définissez FLAT_PACKSHOT=true. Les photos en vrac sont regroupées par identifiant d'article (la partie avant le premier trait de soulignement) et synchronisées en tant que packshots.
Pour les configurations StyleShoots qui déposent tous les fichiers en vrac dans le dossier : définissez FLAT_PACKSHOT=true. Les photos en vrac sont regroupées par identifiant d'article (la partie avant le premier trait de soulignement) et synchronisées en tant que packshots.
Un dossier n'est synchronisé que s'il n'y a eu aucun changement pendant 10 minutes. Les articles inconnus sont ignorés et réessayés plus tard. Pour les packshots, nous supprimons uniquement les fichiers qui ont été effectivement téléchargés — le dossier et le reste restent en place.
Choisissez la version pour votre système. Le téléchargement est un fichier .gz : décompressez avec 7-Zip (Windows) ou gunzip (macOS/Linux).
Téléchargez windows-amd64.exe.gz ci-dessus, décompressez-le et placez smbsync.exe dans son propre dossier, par exemple C:\Photopilot\smbsync\.
CUSTOMER=Bedrijfsnaam
SMB_IP=192.168.1.10
SMB_USERNAME=styleshootssharing
SMB_PASSWORD=wachtwoord
SMB_MOUNT=StyleshootsDrive
START_DIR=sync
API_TOKEN=jouw-api-token
API_URL=https://app.photopilot.ai/api
LOG_LEVEL=info
TZ=Europe/Amsterdam
# Optioneel: StyleShoots-modus waarbij alle bestanden los in START_DIR staan
# (geen submap per artikel). Losse foto's worden gegroepeerd op artikel-
# identifier (het deel voor de eerste underscore) en als packshots gesynct.
FLAT_PACKSHOT=falseSMB_IP est l'adresse IP de la machine avec le partage (par exemple, le StyleShoots ou votre NAS). SMB_MOUNT est le nom du partage lui-même et START_DIR le dossier à l'intérieur du partage qui est synchronisé. Le compte a besoin de droits de lecture et d'écriture : les fichiers téléchargés sont supprimés du partage après le téléchargement.
Ouvrez le Planificateur de tâches (Task Scheduler), créez une tâche qui démarre smbsync.exe au démarrage de l'ordinateur et définissez « Commencer dans » sur le dossier contenant le .env. Choisissez « Exécuter même si l'utilisateur n'est pas connecté ».
Créez un dossier de test avec un code EAN comme nom sur le partage, mettez-y une photo et attendez ±10 minutes. La photo apparaît avec l'article dans Photopilot et disparaît du partage. Le dossier lui-même reste en place, avec un status.json comme preuve qu'il a été traité — les photos que nous n'avons pas téléchargées restent également en place. Les erreurs nous parviennent automatiquement via Sentry.
Par défaut, SMB Sync recherche les mots back, side et label dans le nom de fichier ; toutes les autres photos deviennent un packshot avec cette photo comme avant. Toutes les studios ne nomment pas la vue dans le nom. StyleShoots numérote par exemple par article : <EAN>_PNG_1 est l'avant, _PNG_2 l'arrière et _PNG_3 le côté optionnel. Spécifiez alors vous-même le motif dans votre .env :
FRONT_IDENTIFIER=_PNG_1$
BACK_IDENTIFIER=_PNG_2$
SIDE_IDENTIFIER=_PNG_3$FRONT_IDENTIFIER Avant Par défaut : la première photo qui ne correspond à aucune autre vue.BACK_IDENTIFIER Dos Par défaut : back dans le nom de fichier.SIDE_IDENTIFIER Côté Par défaut : side dans le nom de fichier.LABEL_IDENTIFIER Étiquette (instructions de lavage) Par défaut : label dans le nom de fichier.Avec ce paramètre, 8712345678906_PNG_1, _PNG_2 et _PNG_3 sont combinés en un seul packshot pour l'article 8712345678906 — donc pas comme trois photos distinctes. Le côté manque-t-il ? Cette vue reste alors simplement vide.
Chaque motif est insensible à la casse et est testé sur le nom de fichier sans extension, donc PNG_1 fonctionne aussi bien que _PNG_1$ (le signe $ signifie : à la fin du nom). Dès que vous configurez FRONT_IDENTIFIER, seules les photos correspondant à l'un de ces motifs sont téléchargées — les autres fichiers du dossier restent intacts. Si vous omettez une variable, la règle par défaut s'applique.
La photo d'étiquette est la photo supplémentaire de l'étiquette de lavage ou de composition. LABEL_IDENTIFIER fonctionne exactement comme les trois autres, avec une chose à retenir : les variables que vous ne définissez pas conservent leur valeur par défaut. Dans l'exemple ci-dessus, LABEL_IDENTIFIER est donc toujours sur le mot label. Trois situations :
off (ou none) fonctionne également pour BACK_IDENTIFIER et SIDE_IDENTIFIER et est le seul moyen de désactiver un mot par défaut. Pour FRONT_IDENTIFIER, off signifie simplement revenir à la valeur par défaut : la première photo qui ne correspond à aucune autre vue.
Besoin d'aide pour l'installation ? Nous la configurons aussi volontiers avec vous.