Quiero servir muchos archivos grandes en un sitio Plone. Por archivos grandes me refiero a alrededor de 5MB (música) y muchos de ellos. Ya lo hice directamente al ZODB, no es una buena idea. Estoy ejecutando Plone 3.1.1 y Zope 2.10.6.¿Cuál es la mejor manera de almacenar archivos grandes en Plone 3?
Respuesta
Como ya sabrá, la solución a largo plazo para esto se supone que es el soporte ZODB BLOB. Ticket 6805 es probablemente la fuente más autorizada sobre esto. Desafortunadamente, el hito se establece en 4.0, y ejecutarlo en producción en una versión anterior quizás no sea una buena solución.
Históricamente, ha existido una gran cantidad de productos Plone para almacenar archivos externamente, manteniendo solo los metadatos en el ZODB. He probado varios de ellos y, según mi experiencia, no hay ninguno que funcione bien con las versiones actuales de Plone/Zope. No confíe en mí en esto, sin embargo, no he probado ningún producto de este tipo el año pasado más o menos.
Personalmente, yo buscaría una solución que sea lo más simple posible y no implique a Plone más que necesario. Almacenar los archivos de música en el disco, servirlos directamente desde Apache/cualquier servidor web que use, mantener solo los metadatos en Plone, en un producto que usted mismo redacte, le dará una solución robusta con buen rendimiento. Es decir, su producto debe producir enlaces a una ruta en su servidor web donde los archivos de música están disponibles.
Si necesita autorización para descargar los archivos de música y supone que ejecuta lighthttpd o apache en frente de su Zope, buscar una solución basada en X-sendfile es probablemente la mejor opción. Con X-sendfile, guarda los archivos en el disco y agrega un encabezado (X-sendfile) a la respuesta cuando se debe enviar un archivo de música al navegador del cliente. El servidor web seleccionará este encabezado y enviará el archivo al cliente, sin que Plone participe.
Algunos indicadores:
http://tn123.ath.cx/mod_xsendfile/ (El módulo de Apache)
http://john.guen.in/past/2007/4/17/send_files_faster_with_xsendfile/ (ejemplo Rubí)
apoyo burbuja ZODB es la mejor manera, más integrada para hacer frente a archivos grandes Los archivos grandes se almacenan de forma transparente en el sistema de archivos en lugar de en la base de datos de objetos zodb. "Transparentemente" en este caso significa que no lo notará en su trabajo de programación real después de la configuración inicial.
La funcionalidad de blob ha sido transferida a las versiones de zope actuales (a mitad de 2008) y se puede usar en plone 3. Utilice plone.app.blob en su proyecto para esto: http://plone.org/products/plone.app.blob.
Sí, no debería utilizar nada más que el soporte ZODB BLOB en este momento. Funciona bien con la serie 3.x de lanzamientos.
More information in ticket #6805
- Alexander Limi, cofundador de Plone
He plone.app.blob instalado en algunos sitios de poco tráfico y instalable (listo para rodar, si se quiere) de mi producción más ocupado sitios en la misma instancia.
Existe el hito de 4.0, pero ciertamente lo revisaré (y probablemente haga clic en el botón de instalación de plone.app.blob en mis sitios de producción) alrededor de 3.4 veces.
Un par de referencias:
http://n2.nabble.com/PLIPs-I%27d-love-to-see-for-Plone-3.3-tp1123218p1130015.html
http://dev.plone.org/plone/ticket/8629#comment:2 destacado
... 3.4, cuando probablemente tendremos especificación filestorage burbuja mayor soporte a plone.recipe.zeoserver y zope2instance. Eso nos dará una ubicación estándar para las correcciones de propietario/permiso que necesiten los instaladores .
En contexto: Estoy jugando más o menos con plone.app.blob y una bolsa muy mezclada de otros productos adicionales con las versiones 3.1.7 y 3.2a1 de Plone en base a los instaladores estándar y experimentales. En estos entornos, sin tratando cosas con guantes de niños, los Plone se comportan notablemente bien y cuando (como se esperaba) los experimentos conducen a rarezas, el apoyo de la comunidad es preciso y correcto.
Aclarador, a lo mejor de mi conocimiento:
de diversas tecnologías candidatas en un PLIP (Plone motivo de mejoras Propuesta), plone.app.blob es el candidato principal con un amplio apoyo
- - para casos de uso excepcionales, a veces encontramos algo diferente a los BLOB recomendados
4.0 es actualmente el hito más probable para que plone.app.blob se convierta en un producto dentro del núcleo de Plone
en el plone.app.blob Mientras tanto es un producto complemento recomendado para las versiones 3.x actuales de Plone
- para los casos de uso que sugieren tecnologías BLOB similar.
- 1. ¿Cuál es la mejor manera de almacenar datos de tendencia?
- 2. ¿Cuál es la mejor manera de eliminar el caché CSS de Plone?
- 3. ¿Cuál es la mejor manera de dividir archivos grandes en Python para multiprocesamiento?
- 4. ¿Cuál es la mejor manera de almacenar archivos multimedia en una base de datos?
- 5. La mejor manera de almacenar muchos archivos en el disco
- 6. ¿Cuál es la mejor manera de manejar buffers grandes en una pila de protocolos en capas?
- 7. ¿Cuál es la mejor manera de cargar y almacenar imágenes en el sitio?
- 8. ¿Cuál es la mejor manera de almacenar información de la versión de Subversion en EAR?
- 9. ¿Cuál es la mejor manera de devolver grandes cantidades de datos binarios de un servicio web?
- 10. ¿Cuál es la mejor manera de almacenar la configuración específica de la aplicación en los rieles?
- 11. Mejor manera de almacenar archivos binarios o de imagen
- 12. ¿Cuál es la mejor manera de almacenar cadena de conexión en DLL de .NET?
- 13. ¿Cuál es la mejor manera de almacenar un valor monetario en la base de datos?
- 14. ¿Cuál es la mejor manera de almacenar una contraseña o clave privada en un host web?
- 15. ¿Cuál es la mejor manera de sincronizar grandes cantidades de datos en todo el mundo?
- 16. ¿Cuál es la mejor manera de visualizar grandes conjuntos de datos en QT
- 17. ¿Cuál es la mejor manera de enviar grandes lotes de correos electrónicos en ASP.NET?
- 18. Cuál es la mejor manera de almacenar datos estáticos en C# que nunca cambiará
- 19. Cuál es la mejor manera de almacenar la duración en MySQL
- 20. ¿Cuál es la mejor manera de almacenar la Biblia en SQL?
- 21. ¿Cuál es la mejor manera de representar arbitrariamente números grandes en c?
- 22. ¿Cuál es la mejor manera de almacenar cadenas UTF-8 en memoria en C/C++?
- 23. ¿Cuál es la mejor manera de almacenar datos históricos en SQL Server 2005/2008?
- 24. ¿Cuál es la mejor manera de manejar FBO en OpenGL?
- 25. ¿Cuál es la mejor manera de almacenar valores de fecha en formato de cadena?
- 26. ¿Cuál es la mejor manera de almacenar un conjunto de Delphi en un conjunto de datos?
- 27. ¿Cuál es la mejor manera de almacenar información de zona horaria en mi base de datos?
- 28. Identificación de archivos en Plone BlobStorage
- 29. ¿Cuál es la mejor manera de almacenar variables de clase en PHP?
- 30. ¿Cuál es la mejor manera de almacenar datos como 'Favoritos' en una aplicación de Android?