Aller au contenu

[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 !

Lien vers le commentaire
Partager sur d’autres 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
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...