Je souhaite traiter beaucoup de gros fichiers sur un site Plone. Par gros fichiers, je veux dire environ 5MB (musique) et beaucoup d'entre eux. Je l'ai déjà fait directement au ZODB, ce n'est pas une bonne idée. Je cours Plone 3.1.1 et Zope 2.10.6.Quelle est la meilleure façon de stocker de gros fichiers dans Plone 3?
Répondre
Comme vous le savez peut-être, la solution à long terme pour cela est supposée être le support ZODB BLOB. Ticket 6805 est probablement la source la plus autoritaire à ce sujet. Malheureusement, le jalon est défini sur 4.0, et l'exécuter en production sur une version plus ancienne n'est peut-être pas une bonne solution.
Il y avait, par le passé, beaucoup de produits Plone pour stocker des fichiers en externe, ne conservant que des métadonnées dans le ZODB. J'ai essayé plusieurs d'entre eux, et d'après mon expérience, il n'y en a pas un seul qui fonctionne bien avec les versions actuelles de Plone/Zope. Ne me faites pas confiance à ce sujet, cependant, je n'ai essayé aucun produit de ce type l'année dernière.
Personnellement, j'irais chercher une solution aussi simple que possible et qui n'implique pas Plone plus que nécessaire. Stocker les fichiers musicaux sur disque, les servir directement depuis un serveur web apache/quel que soit le serveur que vous utilisez, ne conserver que des métadonnées dans Plone - dans un produit que vous écrivez vous-même, vous donnera une solution robuste avec de bonnes performances. En d'autres termes, votre produit doit générer des liens vers un chemin sur votre serveur Web où les fichiers musicaux sont disponibles.
Si vous avez besoin d'une autorisation pour télécharger des fichiers de musique et en supposant que vous exécutez lighthttpd ou apache devant votre Zope, regardant une solution basée sur X-sendfile est probablement la meilleure option. Avec X-sendfile, vous conservez les fichiers sur disque et ajoutez un en-tête (X-sendfile) à la réponse lorsqu'un fichier musical doit être envoyé au navigateur client. Le serveur web choisira cette entête et enverra le fichier au client, sans que Plone ne soit impliqué.
Quelques pointeurs:
http://tn123.ath.cx/mod_xsendfile/ (Le module apache)
http://john.guen.in/past/2007/4/17/send_files_faster_with_xsendfile/ (exemple Ruby)
soutien blob zodb est la meilleure et la plus intégrée pour faire face aux gros fichiers. Les gros fichiers sont stockés de manière transparente sur le système de fichiers plutôt que dans la base de données des objets zodb. "Transparent" dans ce cas signifie que vous ne le remarquerez pas dans votre travail de programmation après la configuration initiale.
La fonctionnalité blob a été rétroportée aux versions zope actuelles (à mi-2008) et peut être utilisée dans la version 3. Utilisez plone.app.blob dans votre projet pour cela: http://plone.org/products/plone.app.blob.
Oui, vous ne devriez pas utiliser autre chose que le support ZODB BLOB à ce stade. Cela fonctionne très bien avec la série 3.x des versions.
More information in ticket #6805
- Alexander Limi, co-fondateur Plone
Je plone.app.blob installé sur certains sites à faible trafic et installable (prêt à rouler, si vous voulez) pour ma production plus occupé sites dans la même instance.
Il ya le jalon 4.0 mais je vais certainement passer en revue (et probablement cliquer sur le bouton d'installation de plone.app.blob sur mes sites de production) vers 3,4 fois.
Quelques références:
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 point fort
... 3.4, quand nous aurons probablement les spécifications blob filestorage support ajouté à plone.recipe.zeoserver et zope2instance. Cela nous donnera un emplacement standard pour tout correctif propriétaire/permission que les installateurs doivent faire.
Dans le contexte: je joue à peu près avec plone.app.blob et un sac très mixte d'autres add-on avec les versions 3.1.7 produits et 3.2a1 des installateurs basés sur Plone standard et expérimentaux. Dans ces environnements, sans traiter les choses avec des gants de chevreau, les sieste Plone se comportent remarquablement bien et lorsque (comme prévu) les expériences mènent à des bizarreries, le soutien de la communauté est rythmé et approprié.
Clarifiant, au mieux de ma connaissance:
de diverses technologies candidates dans un PLIP (Immprovement Proposition Plone), plone.app.blob est le concurrent principal avec un large soutien
- - pour des cas d'utilisation exceptionnels, nous trouvons parfois quelque chose d'autre que des BLOBs recommandés
4.0 est actuellement le jalon le plus probable pour plone.app.blob de devenir un produit dans Plone core
dans le plone.app.blob Entre-temps, est un produit add-on recommandé pour les versions actuelles 3.x de Plone
- pour les cas d'utilisation qui suggèrent des technologies comme GOUTTE.
- 1. Quelle est la meilleure façon d'effacer le cache CSS de Plone?
- 2. Quelle est la meilleure façon de stocker des fichiers multimédia sur une base de données?
- 3. Quelle est la meilleure façon de gunzip fichiers avec Perl?
- 4. Quelle est l'efficacité de SBCL pour stocker de gros graphiques?
- 5. Quelle est la meilleure façon d'examiner les fichiers access.log d'apache?
- 6. Quelle est la meilleure façon de stocker l'ordre entre les lignes de la base de données?
- 7. Quelle est la meilleure façon de stocker la configuration spécifique à l'application dans les rails?
- 8. Quelle est la meilleure façon de stocker une liste de messages/arbre fileté dans SQL?
- 9. Quelle est la meilleure façon de stocker les paramètres de l'application? (MVC)
- 10. Quelle est la meilleure façon de vérifier la capacité du système de fichiers en utilisant .Net?
- 11. Quelle est la meilleure façon de stocker les valeurs de configuration pour plusieurs dizaines de colonnes?
- 12. Quelle est la meilleure façon de stocker des données d'historique dans SQL Server 2005/2008?
- 13. Quelle est la meilleure stratégie pour gérer les gros téléchargements de fichiers avec Ruby on Rails?
- 14. Quelle est la meilleure façon de stocker plusieurs valeurs pour $ .data() de jQuery?
- 15. Quelle est la meilleure façon de stocker les rapports d'utilisation au fil du temps?
- 16. Quelle est la meilleure façon de manipuler et de stocker d'énormes listes ordonnées ou des hachages?
- 17. Personnalisation de l'onglet de partage Plone 3
- 18. Quelle est la meilleure façon d'automatiser le remplacement de texte?
- 19. Quelle est la meilleure façon de stocker les variables de test unitaires statiques?
- 20. Quelle est la meilleure façon de stocker des variables de classe en PHP?
- 21. Quelle est la meilleure façon de dupliquer fork() dans Windows?
- 22. Quelle est la meilleure façon de formater C# dans WordPress?
- 23. Quelle est la meilleure façon de renommer (déplacer) les branches du système de fichiers dans .NET?
- 24. Quelle est la meilleure façon de stocker des messages texte? Quelque chose comme SMS
- 25. Meilleure façon de stocker les critères Badge?
- 26. Quelle est la meilleure façon de stocker des données sur un nœud TreeView?
- 27. Quelle est la meilleure façon de vider un répertoire?
- 28. Quelle est la meilleure façon de structurer un projet?
- 29. Quelle est la meilleure façon de faire ce programme Java?
- 30. meilleure façon de stocker/utiliser plusieurs langues