videos una subir mostrar modificar insertar imagen guardar eliminar desde datos con archivos php mysql storage blob

una - subir videos php mysql



Dónde almacenar los archivos cargados(sonido, imágenes y video) (5)

Me gustaría almacenar los archivos directamente en el disco y la base de datos solo con su ID / url.

De esta forma, el acceso a esos archivos (que pueden ser grandes, archivos binarios) no requiere ninguna operación de php / base de datos, y el servidor web lo hace directamente.
También será más fácil mover esos archivos a otro servidor si lo desea.

En realidad, solo una ventaja que puedo ver es almacenarla en la base de datos de una manera más fácil: de todos modos quieres hacer una copia de seguridad de tu BD, de esta forma tendrás todos los datos en un solo lugar y puedes estar seguro de que cada copia de seguridad está completa (es decir, no t tienen archivos en el disco que no utilizan las entradas de la base de datos, y usted no tiene ID de imágenes en su base de datos que apuntan a ninguna parte)

Un tiempo después tuve que desarrollar un sitio de música que permitía subir archivos de audio a un sitio y luego convertirlos a varios formatos usando ffmpeg, la gente luego descargaba los archivos de audio cargados después de comprarlos y se creaba un archivo tmp y colocado en la ubicación de descarga y solo era válido para cada instancia de descarga y el archivo tmp luego se eliminaría.

Ahora que vuelvo a visitar el proyecto, tengo que agregar imágenes y videos para subir contenido también.

Quiero encontrar el mejor método para almacenar los archivos,

Opción 1: almacenar los archivos en una carpeta y referenciarlos en la base de datos

Opción 2: almacenar el archivo real en la base de datos (mysql) como blob.

Estoy jugando con esta idea para tener en cuenta las implicaciones de seguridad de cada método y otros problemas que podría no haber calculado.


Recomendaría almacenar como archivos y almacenar sus ubicaciones en la base de datos.

El almacenamiento de los archivos en una base de datos requiere más recursos y hace que la copia de seguridad / restauración de las bases de datos sea más lenta. ¿De verdad quieres tener que transferir muchos videos cada vez que haces un volcado de base de datos? Los sistemas de archivos funcionan muy bien para repartir archivos, y puede hacer una copia de seguridad / sincronizarlos muy fácilmente.


Yo iría por la opción de base de datos. Lo he usado en una serie de proyectos, algunos muy grandes de más de 100 GB. La implementación del almacenamiento es clave, diséñalo mal y tu rendimiento será castigado. Vea este ejemplo para algunas buenas ideas de implementación:
El almacenamiento de la base de datos permite más escalabilidad y seguridad.


Consulte esta pregunta anterior de Almacenamiento de imágenes en una base de datos, ¿sí o no? .

Sé que mencionaste imágenes y videos, sin embargo, esta pregunta tiene relevancia para todos los grandes archivos multimedia de contenido binario.

El consenso parece ser que almacenar rutas de archivos a las imágenes en el sistema de archivos, en lugar de las imágenes reales, es el camino a seguir.


Hice una pregunta similar usando Oracle como back-end para una aplicación de Windows Forms.

La respuesta realmente se reduce a sus requisitos para hacer una copia de seguridad y restaurar los archivos. Si ese requerimiento es importante, utilice la base de datos, ya que será más fácil (ya que de todos modos está realizando una copia de seguridad de la base de datos, ¿verdad?: O)