Programmation.SQL : Stocker des photos dans une base de données

Posté par totof2000 () le 27 décembre 2007
0

Bonjour.



Est-il possible de stocker des photos dans un SGBD ?



En effet, j'ai lu des exemples de gestion ou de partages de photos, mais la plupart de ceux-ci ne stockent pas les images en BDD, mais seulement des URL vers lesdites images. Pourquoi?



Je vous remercie d'avance pour vos réponses.

> Lire le message (18 commentaires, moyenne: 1,6).  

Vous avez demandé le commentaire #892514.

Raison pragmatique de ne pas le faire...

Posté par ragoutoutou () le 27/12/2007 à 14:24. (lien). Évalué à 2.

Pour accéder à tes images, tu dois impérativement les réextraire de la DB, alors que si elles sont stockées sur le disque sous forme de fichiers, tu peux directement les ouvrir avec n'importe quelle application.

Les images dans un SGBD, c'est rajouter une couche de complexité pour pas grand-chose.

Par contre, indexer les images dans un sgbd, ça, ça a un sens (tu ne mets pas les images dans la db, juste les méta données, genre headers exif si ce sont des photos).

[ Répondre ]

  • [^]Re: Raison pragmatique de ne pas le faire...

    Posté par gaaaaaAab () le 27/12/2007 à 18:08. (lien). Évalué à 1.

    +1

    J'aurais moins bien dit :-)

    [ Répondre ]

    [^]Re: Raison pragmatique de ne pas le faire...

    Posté par totof2000 () le 27/12/2007 à 18:29. (lien). Évalué à 2.

    et dans le cas ou tu veux gérer des droits d'accesa ax photos ?

    Il suffit que quelqu'un ait l'URL de laphoto pour pouvoir y accéder, non ?

    [ Répondre ]

    • [^]Re: Raison pragmatique de ne pas le faire...

      Posté par tomachaka () le 27/12/2007 à 19:18. (lien). Évalué à 1.

      dans ce cas-là, il suffit de ne pas laisser les photos directement accessibles et d'utiliser un script, qui lui aura accès aux images, pour effectuer la vérification des droits (dans la db par ex) et transmettre ou non l'image.

      Pour un serveur web, on peut donc simplement stocker les images en dehors du document root.

      [ Répondre ]

      [^]Re: Raison pragmatique de ne pas le faire...

      Posté par ragoutoutou () le 27/12/2007 à 19:56. (lien). Évalué à 2.

      et dans le cas ou tu veux gérer des droits d'accesa ax photos ?


      tu peux parfaitement avoir tes photos dans un répertoire non accessible directement et avoir un script ou cgi les envoyant au client quand nécessaire, après vérification des droits, de la même manière que tu aurais fait ça en les stockant dans des blobs, mais en plus simple.

      [ Répondre ]

      • [^]Re: Raison pragmatique de ne pas le faire...

        Posté par totof2000 () le 28/12/2007 à 00:43. (lien). Évalué à 2.

        mouais, pas convaincu, étant donné que le serveur www tourne avec un ID ayant les droits pour accéder au répertoire en question une URL bien formée devrait permettre a quelqu'un d'accéder aux photos ... a moins de pouvoir l'empêcher au niveau du serveur www (peut-être dans la configuration apache ) , je vois pas trop comment faire ... Cela dit, côté base de données, c'est pas forcément mieux, sauf que pour accéder au blob, il faut obligatoirement passer par une requete sql, donc par une requete au serveur www via CGI ou script .... a moins que j'ai raté quelque chose (ca fait longremps que je n'ai pas touché a ce genre de truc).

        [ Répondre ]

        • [^]Re: Raison pragmatique de ne pas le faire...

          Posté par benoar (Jabber id, ) le 28/12/2007 à 01:16. (lien). Évalué à 2.

          a moins de pouvoir l'empêcher au niveau du serveur www (peut-être dans la configuration apache )

          Ça se fait en 2s en ajoutant un .htaccess dans le répertoire, et en mettant l'accès à "deny". Tes clients ne peuvent plus y accéder, mais tes scripts PHP ou autre, pas de problème. Comme ça, tu as un script qui sera appelé avec en paramètre le nom de ta photo, il vérifie l'accès et renvoie les données de l'image avec le type mime qu'il faut.

          [ Répondre ]

          • [^]Re: Raison pragmatique de ne pas le faire...

            Posté par totof2000 () le 28/12/2007 à 03:28. (lien). Évalué à 2.

            Merci pour ta réponse, je vais creuser ça.

            [ Répondre ]

          [^]Re: Raison pragmatique de ne pas le faire...

          Posté par ragoutoutou () le 28/12/2007 à 07:55. (lien). Évalué à 2.

          Cela dit, côté base de données, c'est pas forcément mieux, sauf que pour accéder au blob, il faut obligatoirement passer par une requete sql, donc par une requete au serveur www via CGI ou script


          si un hacker arrive à contourner la sécurité apache pour récupérer des fichiers protégés correctement par un .htaccess ou placés hors de la racine du serveur web, je ne vois pas pourquoi il n'arriverait pas à récupérer tes requêtes...

          [ Répondre ]

          • [^]Re: Raison pragmatique de ne pas le faire...

            Posté par totof2000 () le 28/12/2007 à 23:36. (lien). Évalué à 2.

            si un hacker arrive à contourner la sécurité apache pour récupérer des fichiers protégés correctement par un .htaccess

            euh .... relis bien l'enchainement des réposes. Il n'était pas question d'un fichier .htaccess a ce stade de la discussion ... ce n'est venu que dans la réponse suivante.

            [ Répondre ]

            • [^]Re: Raison pragmatique de ne pas le faire...

              Posté par ragoutoutou () le 28/12/2007 à 23:51. (lien). Évalué à 2.

              Et?

              Le problème principal de cette discussion est qu'au lieu de venir avec ton problème, tu es venu avec une solution, celle de la DB, sans même avoir creusé les possibilités de sécurité au niveau de l'application serveur web. Tu n'as même pas formulé une seule fois ce que tu voulais exactement faire.

              [ Répondre ]

              • [^]Re: Raison pragmatique de ne pas le faire...

                Posté par totof2000 () le 18/01/2008 à 00:54. (lien). Évalué à 1.

                Un peu tard mais ....
                au lieu de venir avec ton problème,
                Je n'ai pas de problème ...

                tu es venu avec une solution, celle de la DB
                oui

                Tu n'as même pas formulé une seule fois ce que tu voulais exactement faire.
                Je ne le sais pas moi-même et c'est pour ça que je pose des questions, pour avoir des pistes.

                En gros, je veux pouvoir stocker des photos quelque part (en base ou dans un répertoire, peu importe), et gérer des droits d'accès à ces photos. Je n'ai que rartement vu un stockage de photos en BDD et j'essaie de comprendre pourquoi. Et effectivement je me met "dans a peau" d'un pro BDD (sans en etre réellement un, je cherche juste à comprendre). Pour le moment j'ai pas pris de décision (pas eu le temps de tester les deux approches), mais dès que j'aurai un peu de temps je le ferai et je m'orienterai certainement vers la solution "ficiers platsavec indesx en BDD". Mais au moins je saurai pourquoi.

                [ Répondre ]