2010-10-28 20 views
3

J'ai un projet Rails 3 qui télécharge/télécharge des fichiers, avec des droits d'accès (l'utilisateur a beaucoup de fichiers et ne peut lire/écrire que ses propres fichiers). Si je stocke mes fichiers sur un système de fichiers classique, je peux vérifier l'accès au fichier dans mon application rails puis utiliser l'en-tête X-Sendfile pour rediriger vers le fichier, si l'utilisateur y a accès. De cette façon, un utilisateur ne peut jamais accéder à un fichier sans autorisation, et le téléchargement est rapide.GridFS, Rails 3, X-Sendfile de MongoDB, et ACL, HOW-TO?

  1. Puis-je faire télécharger le fichier depuis GridFS aussi vite que X-Sendfile, et sauter les tracas de les tuyauterie creux rails/crémaillère?

  2. Les faire passer au travers des rails/racks serait terriblement lent?

  3. Puis-je faire télécharger le fichier depuis GridFS aussi vite que X-Sendfile, et sauter les tracas de les tuyauterie creux rails/crémaillère, ET AUSSI ont la capacité de faire respecter les droits d'accès?

+0

vous ne pouvez pas faire – shingara

+0

pense que je vais juste utiliser quelque chose comme [rack GridFS] (http://github.com/skinandbones/rack-gridfs) et la proie C'est rapide – clyfe

Répondre

1

Jusqu'à présent j'ai trouvé et pensé à des solutions possibles:

  1. Utilisez quelque chose comme gridfs-fuse pour monter le GFS à FS locaux et utiliser X-Sendfile comme AllWays. Utilisez quelque chose comme nginx-gridfs qui est rapide et hors-rails (ne bloque pas le cycle de req-resp de mon application pendant le téléchargement). L'inconvénient est que c'est serveur spécifique

+0

nginx-gridfs ressemble à une bonne solution, mais la version actuelle ne parvient pas à compiler et en raison de nombreux problèmes, elle pourrait souffrir de fuites de mémoire. Je ferais très attention à l'utiliser en production – Tombart