Mi pregunta no es sobre el almacenamiento de imágenes en el disco o en la base de datos.¿Cuál es la mejor práctica cuando se trata de almacenar imágenes para una galería?
- Las imágenes se almacenan en el disco
- Ruta de la imagen y otros datos de imagen se guardan en la base de datos.
- Las imágenes se les da un nombre de archivo único
- Las imágenes se almacenan en 3 tamaños
- Con el tiempo puede haber muchas imágenes utilizadas por muchos usuarios
Mis preguntas son:
- deben ser imágenes almacenado en una carpeta, o en muchas carpetas?
- ¿Está bien usar md5 para crear identificaciones únicas? P.ej. md5 (id + nombre de archivo + número_aleatorio)
- ¿Las imágenes deben almacenarse en caché en el servidor o en el navegador/computadora de los clientes?
¿Algo más que debería pensar?
La solución es usar php, apache y mysql. Usamos Uploadify para cargar imágenes.
Parte del código que utilizo hoy
/**
* Calculate dir tree for object
* Folders starts from 00 to FF (HEX) and can have just as
* many subfolders (I think :)
* @param $id - User ID
* @param $type - Image category
* @return string
*/
function calculateDirTree($id, $type)
{
$hashUserID = substr(hash('md5', $id), -4);
$parentFolder = substr($hashUserID,0,2);
$subfolder = substr($hashUserID,2);
$basePath = $type."/".$parentFolder.'/'.$subfolder.'/';
return $basePath;
}
¿Cuántas imágenes cree que tendrá? Cientos? ¿Miles? Cientos de miles ? –
Para los próximos años estimo alrededor de 100k - 200k imágenes. – Steven
¿Utilizará el mismo nombre de archivo que el usuario ha cargado, y luego si almacena en la misma carpeta, es posible que pueda reemplazar una imagen, si tiene el mismo nombre de archivo que una imagen cargada previamente. –