Jump to content
Sign in to follow this  
howimboe

[Gestion d'images] Comment manipuler de grosses images dans une DB?

Recommended Posts

Bonjour à tous,

 

de niveau intermédiaire sur Android, je développe une petite appli qui se sert d'une 50aine d'images de bonne qualité (environ 3mo/image, 1600x1200, jpg).

 

J'ai regardé pas mal de temps comment gérer ces images. J'ai testé les Blob sur SQLite, ça marche super, sauf que ça n'a pas l'air glop pour des images >1mo (mes cursors ne fonctionnent pas). J'ai lu dans pas mal de tuto que l'idéal est de stocker ses images sur le externalStorage, et de sauver les chemins dans la database. Mes images sont stockées sur un site web mien, mais je souhaite que mon appli soit utilisable en mode non connecté.

 

Cependant voila mon problème : je ne souhaite pas que tous le monde accède facilement aux images de ma DB et je ne veux pas que l'utilisateur les voit dans sa gallerie (de 1, c'est crade pour l'utilisateur, et de 2, je veux garder mes images :).

 

Je vois 3 alternatives, mais je pense que c'est tordu :

 

1 - Internal storage : a priori, l'user moyen n'y a pas accès. Désavantage : 150mo de mémoire interne, ça craint..

 

2 - un fichier pour tous les unir : arriver à faire un gros fichier qui concatène toutes les images à la queue leuleu.

 

3 - des zip de 10 images (j'ai besoin des images 10 par 10)

 

(et 4 : augmenter la taille de Blob, en stockant la DB sur la carte SD?)

 

Vous, vous faites/feriez comment? 

 

D'avance merci !

Share this post


Link to post
Share on other sites

Bonjour,

 

Ta question est à séparer en 2:

 - comment stocker efficacement une image volumineuse ? blob ou fichier externe à la bdd ? perso, j'opterai pour la deuxième solution (je ne connais pas l'efficacité de la gestion des blobs dans SQLite, mais j'aurais un à-priori négatif par rapport à cela)

 - comment sécuriser les accès aux images ? le plus simple, c'est de les stocker dans la mémoire interne, avec l'impact de la taille que cela prend (et c'est vrai, que le stockage soit fait dans des fichiers externes, ou dans des blobs); pour éviter cet impact sur l'espace mémoire utilisé dans la mémoire interne, tu peux les stocker dans la mémoire externe, et dans ce cas, une solution serait de chiffrer les images avant de les stocker, avec une clef que seule l'application connaît et qui serait stockée dans l'espace interne privé à l'appli (chiffrement nécessaire que les images soit stockées sous forme de fichier, ou dans des blobs de la bdd, car si celle-ci est sur l'espace externe, il serait très facile de la récupérer et d'en extraire les contenus)

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  





×
×
  • Create New...