Pour une nouvelle application, je souhaite utiliser PaperClip pour stocker des fichiers vers S3. J'ai déjà installé le gemme AWS-S3 pour une autre application. Cela semble causer des problèmes, car la paperclip devrait utiliser les droits de droite, mais essaie d'utiliser le gemme AWS-S3. Mais je ne veux pas retirer le gemme AWS-S3 de mon système. Y a-t-il un moyen de résoudre ce conflit? Peut-être en forçant le papier à utiliser à droite_aws? Ou en changeant la configuration?
4 Réponses :
wow, c'était rapide. J'ai résolu le problème en utilisant simplement l'AWS-S3 GEM et modifie donc mon environnement.rb pour lire:
#config.gem 'right_aws' config.gem "aws-s3", :version => ">= 0.6.2", :lib => "aws/s3"
J'ai aussi eu ce problème. Spécification des gemmes dans un certain ordre semble fonctionner pour certaines personnes: dans mon application, j'ai également eu un plugin (backup_fu) spécifiant droit_aws code> ainsi que je J'ai dû commenter la ligne dans mon plugin aussi: p>
# backup_fu.rb
require 'yaml'
require 'active_support'
require 'mime/types'
require 'right_aws' unless defined?(RightAws)
require 'erb'
class BackupFuConfigError < StandardError; end
class S3ConnectError < StandardError; end
class BackupFu
# etc...
end
Le problème principal ici est que AWS-S3 redéfinit une méthode appelée La version d'AWS-S3 a 4 arguments et de droite_http_connection's 5. Selon la commande de chargement, AWS-S3 peut redéfinir la version de cette méthode de droite_http_connection de cette méthode. P>
J'ai cloné de droite_http_connection et a fait une solution rapide pour ce problème. J'ai envoyé une demande de retrait à droite_http_connection. P>
Par conséquent, vous pouvez utiliser mon représentant GIT dans votre paquet pour résoudre ce problème: P>
send_request_with_body_stream code>. p>.
GEM 'droit_http_connection',: git => "git: //github.com/gammons/right_http_connection" code> p> p>
Il y a pas longtemps, Amazon a publié officiel AWS SDK pour Ruby . Cela fonctionne assez bien avec S3, soutient les instances S3 américaines, européennes et japonaises de la boîte et bien entretenue. P>
J'ai créé un module de stockage pour PaperClip appelé PaperClip-AWS pour fonctionner avec AWS SDK. P>
N'hésitez pas à l'utiliser. J'espère que cela aidera. P>
Votre module nécessite du papier, ce qui semble essayer d'utiliser AWS-S3. Comment puis-je résoudre ça?
Cristian, excusez-moi pour une réponse si longue. PaperClip exige AWS-S3 CODE> uniquement pour le développement, pas pour l'exécution. Lorsque vous utilisez
PaperClip-AWS CODE> Vous devez simplement inclure dans votre gemfile, comme s'il est affiché dans la documentation, puis regroupez. Rien de plus n'est nécessaire.
Super! Vraiment ravi, que cela vous aide.