PhotopilotPhotopilot
SMB Sync

SMB Sync: dal disco di rete a Photopilot

Un piccolo programma che monitora una share SMB/Samba, ad esempio una macchina StyleShoots, e carica automaticamente le cartelle di foto come shoot e packshot.

  • Shoot

    Le cartelle chiamate S-<setnummer> (ad es. S-1234) vengono caricate come shoot per quel set.

  • Packshot

    Ogni altra cartella viene considerata un articolo: un EAN/codice a barre scansionato o un codice articolo pubblico. Le foto con back, side o label nel nome file vengono associate a quella vista — oppure tramite il tuo pattern, vedi sotto.

  • Modalità flat

    Per StyleShoots che salva tutti i file separatamente nella cartella: imposta FLAT_PACKSHOT=true. Le foto separate vengono raggruppate per identificativo articolo (la parte prima del primo underscore) e sincronizzate come packshot.

  • Modalità flat

    Per StyleShoots che salva tutti i file separatamente nella cartella: imposta FLAT_PACKSHOT=true. Le foto separate vengono raggruppate per identificativo articolo (la parte prima del primo underscore) e sincronizzate come packshot.

  • Sicuro

    Una cartella viene sincronizzata solo se non viene modificato nulla per 10 minuti. Gli articoli sconosciuti vengono saltati e riprovati in seguito. Per i packshot eliminiamo solo i file effettivamente caricati — la cartella e il resto rimangono.

Installazione su Windows Server

  1. Scarica

    Scarica windows-amd64.exe qui sopra, rinominalo in smbsync.exe e mettilo in una cartella dedicata, ad esempio C:\Photopilot\smbsync\.

  2. Crea un file .env nella stessa cartella
    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=false
  3. Puntalo alla tua share Samba/SMB

    SMB_IP è l'indirizzo IP della macchina con la share (ad es. la StyleShoots o il tuo NAS). SMB_MOUNT è il nome della share stessa e START_DIR è la cartella all'interno della share che viene sincronizzata. L'account deve avere permessi di lettura e scrittura: i file caricati vengono eliminati dalla share dopo l'upload.

  4. Avvia automaticamente con Windows

    Apri Utilità di pianificazione (Task Scheduler), crea un'attività che avvii smbsync.exe all'avvio del computer e imposta 'Start in' sulla cartella che contiene il file .env. Seleziona 'Uitvoeren ongeacht of de gebruiker is aangemeld'.

  5. Controllare

    Crea sulla share una cartella di test con un codice EAN come nome, inserisci una foto e attendi ±10 minuti. La foto comparirà sull'articolo in Photopilot e sparirà dalla share. La cartella resta al suo posto, con un file status.json come prova dell'elaborazione — anche le foto che non abbiamo caricato restano semplicemente lì. Gli errori ci arrivano automaticamente tramite Sentry.

Riconoscere fronte, retro e lato

Per impostazione predefinita, SMB Sync cerca le parole back, side e label nel nome del file; tutte le altre foto diventano un packshot separato con quella foto come fronte. Non tutti gli studi indicano la vista nel nome. StyleShoots, ad esempio, numera le immagini per articolo: <EAN>_PNG_1 è il fronte, _PNG_2 il retro e _PNG_3 il lato opzionale. In questo caso, indica tu il pattern nel tuo .env:

FRONT_IDENTIFIER=_PNG_1$
BACK_IDENTIFIER=_PNG_2$
SIDE_IDENTIFIER=_PNG_3$
  • FRONT_IDENTIFIER Fronte Standard: la prima foto che non appartiene a nessun'altra vista.
  • BACK_IDENTIFIER Retro Standard: back nel nome del file.
  • SIDE_IDENTIFIER Lato Standard: side nel nome del file.
  • LABEL_IDENTIFIER Etichetta (istruzioni di lavaggio) Standard: label nel nome del file.

Con questa impostazione 8712345678906_PNG_1, _PNG_2 e _PNG_3 vengono importati insieme come un unico packshot per l'articolo 8712345678906 — non come tre foto separate. Manca il lato? Allora quella vista resta semplicemente vuota.

Ogni pattern non distingue tra maiuscole e minuscole e viene verificato sul nome file senza estensione, quindi PNG_1 funziona esattamente come _PNG_1$ (il carattere $ significa: alla fine del nome). Appena imposti FRONT_IDENTIFIER, vengono caricate solo le foto che corrispondono a uno di questi pattern — gli altri file nella cartella restano invariati. Se ometti una variabile, continua a valere la regola predefinita.

E la foto label?

La foto label è la foto aggiuntiva dell'etichetta di lavaggio o composizione. LABEL_IDENTIFIER funziona esattamente come gli altri tre, con una cosa da ricordare: le variabili che non imposti mantengono il loro valore predefinito. Nell'esempio sopra, quindi, LABEL_IDENTIFIER è ancora impostato sulla parola label. Tre situazioni:

  • Anche la foto del tuo label è numerata _PNG_4 è la foto dell'etichetta? Aggiungi LABEL_IDENTIFIER=_PNG_4$. <EAN>_PNG_1 fino a _PNG_4 verranno importati insieme come un unico packshot: fronte, retro, lato e label.
  • La foto del tuo label ha un nome Si chiama ad esempio 8712345678906_label.png? Allora lascia semplicemente vuoto LABEL_IDENTIFIER: la regola predefinita sulla parola label resta attiva, anche se imposti gli altri tre su numeri. Così puoi usare entrambi i metodi insieme.
  • Non fotografi i label In questo caso non devi fare nulla: le foto che non corrispondono a nessun pattern vengono saltate. Imposta LABEL_IDENTIFIER=off solo se la parola label può comparire per errore in un nome file (per esempio un articolo chiamato 'Label Tee') e non vuoi collegare quella foto come foto label.

off (o none) funziona anche per BACK_IDENTIFIER e SIDE_IDENTIFIER ed è l'unico modo per disattivare una parola predefinita. Con FRONT_IDENTIFIER, off significa semplicemente tornare all'impostazione predefinita: la prima foto che non appartiene a nessun'altra vista.