Lychee, rapide mais gourmand. Et si je me lançais finalement ?

28237023_12c03f6ef5_b

Je souhaite mettre en place un système de partage d’album-photos avec ma famille, mes amis. Tous les dossiers ne sont pas accessibles à ma famille, tous les dossiers ne sont pas accessibles à mes amis.

J’ai un disque dur externe branché sur mon Raspberry PI, avec une arborescence /media/mondisque/2002/mesphotos, /media/mondisque/2003/mesphotos, ainsi de suite.

Je souhaite donc que mon système de partage se base là-dessus et qu’il ne réimporte pas tout dans son propre répertoire.
Je souhaite aussi que le système de partage ne modifie rien du tout dans mes répertoires de photos (genre pas de miniatures, pas de fichiers de config, etc.). Tout doit se faire dans /var/www/monsystèmedepartage.

Lychee semblait parfait pour ça. Rapide à l’affichage (les miniatures sont générées par un plugin, en ligne de commande via un script python). Gestion des albums privés, etc.

MAIS, bah oui, il fallait un mais, il réimporte tout dans son propre répertoire. Inutile donc. Car je vais avoir mes fichiers stockés à deux endroits en même temps. Ma carte SD du Raspberry ne me dit pas merci. Et la doc de Lychee semble confirmer ça. Fort dommage.

Si je devais créer ce genre de script, je n’aurais que ça :

  • cache : la même arbo que mon disque dur avec les miniatures et un fichier de config par répertoire (qui me permettra de dire si l’album est privé ou pas, quelle clé autorise la consultation, etc.)
  • config.ini : où sera stocké entre autre le chemin de mon disque dur avec mes photos
  • import.py : un script qui va chercher dans config.ini le répertoire de mes photos et génère la bonne arbo dans le répertoire cache
  • index.php : pour faire le rendu
  • style.css : pour faire joli

Et c’est tout. C’EST TOUT.

À mon clavier ?

(crédit photo artolog)

Ces billets peuvent également vous intéresser

20 Responses

  1. ekyo dit :

    Salut,
    http://linuxfr.org/news/sortie-de-photoshow-3-0
    Il fait tout ce que tu veux, pas de javascript à gogo et indispensable comme Lychee, simple, efficace.
    Il y a quelques exemples de scripts pour générer les miniatures dans les commentaires.

    • Nicolas dit :

      Salut !
      J’en parle ici http://www.cdetc.fr/la-config-de-mon-raspberry-pi/de photoshow ;-) Trop long pour la génération des miniatures. Je ne veux pas que ça se fasse au chargement de la page.

    • Nicolas dit :

      Ah je viens de lire la fin de ton message, pour les miniatures. Je vais regarder ça alors !

      • Pour moi, Photoshow a le même défaut que Lychee, c’est du PHP…
        En plus, l’interface n’est pas très réactive, ça laggue un peu sur la démo, dommage.
        J’ai essayé Mediagoblin aussi, mais c’est un peu lourd à mettre en place, et ça recopie aussi les données dans son propre cache…
        Bref, j’en viens à la même conclusion que toi, je réfléchis à faire ma propre solution (en Django parce que faut pas déconner quand même), mais de là à trouver du temps… :-)

        • Nicolas dit :

          Pas besoin de django pour tout ça. Un simple script python pour générer tout ça et en avant !
          T’as le nom d’outils pas PHP qui pourraient convenir ?

          • Je ne vois pas ce que tu fait avec ton PHP en fait. Tu veux faire un site statique à partir de tes photos c’est ça ? Si oui, le script Python peut aussi le générer.
            Moi, je pensais à Django (ou Flask ou Bottle) pour servir ça depuis un serveur.

          • Allez, je vais voir ce que je peux faire en une soirée. Je vais essayer de tout (oui, tout) faire tenir dans un fichier python, avec Bottle je pense.
            À suivre… (ou pas)

          • Simon dit :

            J’en profite pour caser un mot sur sigal, un générateur de galerie photo statique en python que je code à mes heures perdues: http://sigal.saimon.org/en/latest/
            Bon pour l’instant ça convient pas tout à fait à ton besoin vu que je génère une arborescence séparée avec les images redimensionnées, mais pouvoir tout générer dans le dossier source est une demande qui m’a déjà été faite. Ça doit déjà presque être possible, sauf que je bloque pour l’instant cette possibilité pour éviter tout risque d’écraser les photos sources. Faudrait ajouter quelques garde-fous et voir ça de plus près …

          • Nicolas dit :

            @Stéphane : j’ai hâte !
            @Simon : merci, je regarde.

          • @Simon : de la manière dont je le comprends, le cache dont parle Nicolas n’est pas dans le dossier source, auquel je ne compte pas toucher non plus, c’est trop risqué. Je regarde sigal du coup :-)
            @Nicolas : j’avance plus doucement que je voudrais mais je te tiens au courant.

            (et sinon, y’a pas un souci dans l’heure de tes commentaires ?)

          • Nicolas dit :

            C’est parce que je suis dans le Nord, on n’est pas sur le même fuseau :-D
            Non, je ne veux pas que le cache soit dans mon dossier sources, ce dossier ne doit pas du tout être modifié.

          • Simon dit :

            Ok, j’avais lu un peu vite et donc mal compris :/
            Du coup sigal correspond plutôt bien à ton besoin. Pour la gestion des permissions, perso je gère ça au niveau du serveur.

          • Bon certes, j’aurais mis un peu de temps, mais voici un premier jet : https://github.com/stephanepechard/jeroboam
            J’ai essayé de tout faire en une seule passe, avec un script et une commande à taper, le tout en deux fichiers !
            Ça manque sans doute un peu de test, mais si vous voulez essayer pour vous faire une idée, les critiques, remarques, bugs sont les bienvenus !

          • Nicolas dit :

            Super, merci Stéphane, je mets ça de côté et je teste dès que j’ai 5 minutes.

        • Gilles dit :

          PHP = grand public coco, tout autre langage = pour geek only…

  2. Gilles dit :

    Côté négatif, tu peux rajouter une volonté de ne pas internationaliser, un dév. un peu… « je fais dans mon coin point » je trouve, etc.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>