Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Duda imagenes en pagina web

Estas en el tema de Duda imagenes en pagina web en el foro de Java en Foros del Web. Hola, buenas tardes. Estoy montando una página web en la que habrá sistema de registro y estos podrán subir imágenes, será una especie de red ...
  #1 (permalink)  
Antiguo 19/05/2017, 13:00
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Duda imagenes en pagina web

Hola, buenas tardes.

Estoy montando una página web en la que habrá sistema de registro y estos podrán subir imágenes, será una especie de red social.
Mi duda está en si la forma de almacenamiento de estas imágenes es en la base de datos o si hay alguna manera más.

Muchas gracias de antemano y un saludo!
  #2 (permalink)  
Antiguo 19/05/2017, 14:08
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Duda imagenes en pagina web

Hola:

Otro mecanismo habitual es crear una estructura de directorios para ir guardando ahí las imágenes (quizás organizado por fecha de subida, por usuario, o el criterio que quieras). En base de datos sólo se guarda el path donde está la imagen y su nombre, junto con cualquier otra inforamción que necesites (usuario que la ha subida, en qué fecha, si permites poner un comentario, ...)

Saludos.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 19/05/2017, 15:07
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 10 meses
Puntos: 52
Respuesta: Duda imagenes en pagina web

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

Otro mecanismo habitual es crear una estructura de directorios para ir guardando ahí las imágenes (quizás organizado por fecha de subida, por usuario, o el criterio que quieras). En base de datos sólo se guarda el path donde está la imagen y su nombre, junto con cualquier otra inforamción que necesites (usuario que la ha subida, en qué fecha, si permites poner un comentario, ...)

Saludos.
Hermoso. Despues te tenes que ocupar de backupear toda esa bolsa de gatos, porque si se te llega a reventar el HDD del server perdiste toda la informacion.

Yo recomendaria o bien ir con un byte[] (VARBINARY) en la DB, o un Blob Storage Cloud.
  #4 (permalink)  
Antiguo 20/05/2017, 02:01
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Duda imagenes en pagina web

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

Otro mecanismo habitual es crear una estructura de directorios para ir guardando ahí las imágenes (quizás organizado por fecha de subida, por usuario, o el criterio que quieras). En base de datos sólo se guarda el path donde está la imagen y su nombre, junto con cualquier otra inforamción que necesites (usuario que la ha subida, en qué fecha, si permites poner un comentario, ...)

Saludos.
Antes de nada muchas gracias por responder!

De aquí me surge otro problema y es que si de suber las imágenes al servidor ¿No se perdería así toda la seguridad ya que cualquiera que conociera el path de la imagen podría acceder a ella?
  #5 (permalink)  
Antiguo 20/05/2017, 02:02
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Duda imagenes en pagina web

Cita:
Iniciado por agleiva Ver Mensaje
Hermoso. Despues te tenes que ocupar de backupear toda esa bolsa de gatos, porque si se te llega a reventar el HDD del server perdiste toda la informacion.

Yo recomendaria o bien ir con un byte[] (VARBINARY) en la DB, o un Blob Storage Cloud.
Muchas gracias por tu respuesta,

Lo que propones entonces es lo que yo decía inicialmente, subir las imágenes a la BD directamente, si te he entendido bien, ¿No?
  #6 (permalink)  
Antiguo 20/05/2017, 03:23
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Duda imagenes en pagina web

Hola:

Sí, efectivamente, si alguien consigue entrar en el servidor, puede ver las imágenes. Igual que si alguien consigue el usuario y password de la base de datos.

En cuanto al tema de backup que menciona agleiva, efectivamente, además del backup de base de datos, habría que hacer backup del directorio donde se guarden las imágenes. Y si borras el usuario y sus datos de base de datos, tendrás que borrar por separado sus ficheros de imagen. Sería "doble" trabajo de gestión. En cualquier caso, como comento, hay aplicaciones web muy extendidas que usan este mecanismo, como wordpress, liferay, .... por el siguiente motivo

En general, para una aplicación web, la recomendación es que depende del tamaño de los ficheros y cuántos usuarios van a poder acceder simultáneamente . Si los ficheros son grandes y se accede con frecuencia desde aplicación web, hay que extraer el blob, y enviarlo al navegador como "stream" de imagen, que puede ser más costoso para el servidor que si se "sirve" directamente la imagen del fichero.

Saludos.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 20/05/2017 a las 03:29
  #7 (permalink)  
Antiguo 20/05/2017, 04:39
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Duda imagenes en pagina web

Realmente solo habría que acceder una vez a la base de datos y al guardar las imágenes más utilizadas por el usuario en el contexto de aplicación ya estaría optimizado el proceso de obtención de la imagen, si no me equivoco.
  #8 (permalink)  
Antiguo 20/05/2017, 18:41
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Duda imagenes en pagina web

No entiendo el problema en guardar los ficheros en un directorio del disco en lugar de dentro de la base de datos. Que se puede estropear el HDD del servidor? Bueno, si es un servidor decente, no hay problema porque los discos duros estarán en raid (al igual que suele haber redundancia en fuentes de alimentación y red). Además, acaso la base de datos no se guarda en disco? Vamos, que en caso de error de disco vas a sufrir igual...

Iendo al tema. Lo ideal es tener las imágenes en una carpeta que no sea visible desde internet. Luego solo tienes que montar una página que sirva de "proxy" para acceder a la imagen original. Esta página te permite hacer cosas extras como comprobar si el usuario tiene una sesión abierta, si tiene privilegios para ver una imagen en particular, etc. Esta solución es muy sencilla de programar y solo requiere un poco de manejo de la redirección de URL's.

Por ejemplo, cuando quieras mostrar "\img\foto1.jpg" tendrías una regla que todo lo que sea "\img\*.jpg" vaya a "procesarImagen.jsp?url=foto1.jpg". Y procesarImagen.jsp solo tendría que realizar la lógica de negocio de control de sesión y usuario (si precisa) y mandar la imagen al navegador como un stream.

Todo esto si obviamente requieres realizar algún tipo de procesamiento cuando se quiera acceder a la imagen. Sino simplemente con que sea un directorio con únicamente permisos de lectura (ni escritura ni ejecución), hay más que suficiente para la mayoría de webs.
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: almacenamiento, imagenes, programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.