2009-11-24 4 views
1

J'ai essayé de suivre ce tutoriel pour permettre à mes utilisateurs de télécharger un tas de mp3 à la fois et voir les progrès.en utilisant des rails pour télécharger des choses sur s3 avec fancyupload

http://www.railstoolkit.com/posts/uploading-files-directly-to-amazon-s3-using-fancyupload

J'implémenté à peu près plus ou lese exactement, mais je retire quelques-unes des choses à partir du fichier de politique, donc il n'y a que ['starts-with', '$key', '#{key}/'], au lieu de l'autre commence avec des choses qui a été à l'origine à échouer lorsque Je mets manuellement un champ et le soumets dans le formulaire.

J'ai également activé le mode verbeux. C'est ce que je reçois en essayant de télécharger un fichier:

Main::fireEvent "buttonEnter"Swiff.Uploader.js (line 370) 
Main::fireEvent "buttonDown"Swiff.Uploader.js (line 370) 
Main::fireEvent "buttonEnter"Swiff.Uploader.js (line 370) 
Main::fireEvent "browse"Swiff.Uploader.js (line 370) 
Main::fireEvent "buttonLeave"Swiff.Uploader.js (line 370) 
Main::handleSelect Adding FilesSwiff.Uploader.js (line 370) 
Main::hasFile: Checking tarzanandjane.mp3Swiff.Uploader.js (line 370) 
Main::fireEvent "select": [[Object id=2 addDate=1259106078359 name=tarzanandjane.mp3 0=Object $family=Object], null, Object uploading=0 bytesLoaded=0 rate=0 size=2891446]Swiff.Uploader.js (line 370) 
File[2]::start: ObjectSwiff.Uploader.js (line 370) 
Main::fireEvent "fileStart": [Object id=2 addDate=1259106078359 name=tarzanandjane.mp3, Object uploading=1 bytesLoaded=0 rate=0 size=2891446]Swiff.Uploader.js (line 37 

Ce qui se passe en réalité est que cela crée une entrée avec une barre de progression coincé et la taille correcte du fichier, mais rien de plus semble se produire. Je remarque aussi que chaque fois que je vais télécharger un fichier, je reçois une erreur dans le panneau de Firebug net:

ActionController::UnknownAction (No action responded to none. Actions: xxx...): 
    C:\Ruby\bin\mongrel_rails:19:in `load' 
    C:\Ruby\bin\mongrel_rails:19 
    -e:2:in `load' 
    -e:2 

La chose vraiment frustrant au sujet de ces problèmes est que je ne suis pas sûr de ce que la meilleure façon de aller sur le débogage est. C'est difficile pour moi de voir si s3 se plaint de quelque chose et échoue silencieusement dans les coulisses. Je peux obtenir l'URL param string (qui semble bien), mais cela doit être envoyé avec un fichier, donc je ne peux pas simplement copier et coller sur mon fichier amazonws. J'ai veillé à ce que mon ACL soit très lâche et que tout le monde puisse écrire quelque chose. Comme je l'ai déjà dit quand j'ai mis dans le champ de faux fichier et soumettre le bouton, ils sont téléchargés sur s3. L'action "none" est aussi très agaçante car je n'ai aucune idée de ce qui peut en être la cause dans mon code. Si seulement je pouvais obtenir des conseils sur le débogage de ce genre de choses, ce serait formidable.

Répondre

1

L'origine du problème pourrait être que le téléchargement de Flash nécessite une réponse du serveur non vide (sur mac) et que S3 renvoie uniquement un en-tête 201-OK. Essayez de demander à l'auteur original de l'article dans son fil de commentaires, il pourrait avoir plus de perspicacité.

0

Voici une implémentation fonctionnelle de ce projet. En outre, si vous lisez le fichier README de mon exemple d'application ci-dessous, il vous indiquera comment déboguer les téléchargeurs basés sur Flash à l'aide de WireShark. C'est BEAUCOUP plus facile que de se cogner la tête contre le mur.

Exemple de projet en utilisant Rails 3, Flash et MooTools-basé FancyUploader télécharger directement à S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

Voici un autre type de Uploader:

Exemple de projet en utilisant Rails 3, Flash/Silverlight/GoogleGears/BrowserPlus et jQuery Plupload pour télécharger directement sur S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload

Questions connexes