Rails 3 paperclip vs carrierwave vs dragonfly vs attachment fu [zamknięty]

Pracuję nad uaktualnieniem aplikacji Rails 2.3.11, Ruby 1.9.2 do Rails 3.0.10, a attachment_fu już nie działa.

Patrzę na zmianę na paperclip, carrierwave lub dragonfly do przesyłania plików, a może kompatybilną z Rails 3, utrzymaną wersję attachment_fu.

Która z tych opcji byłaby najlepsza pod względem wydajności, jak dobrze utrzymana, jak łatwa jest aktualizacja z attachment_fu i może będzie kompatybilna z Rails 3.1? Jakie są główne zalety i wady każdego z nich?

Każdy wgląd będzie mile widziany.

Author: Kevin Vermeer, 2011-09-14

3 answers

Używałem zarówno spinacza, jak i Carrierwave, i na Twoim miejscu wybrałbym Carrierwave. Jest dużo bardziej elastyczny. Uwielbiam również fakt, że nie zaśmieca Twoich modeli konfiguracją. Zamiast tego możesz zdefiniować klasy uploadera. Pozwala to na łatwe ponowne użycie, rozszerzenie itp.

Oglądałeś Carrierwave railscast? http://railscasts.com/episodes/253-carrierwave-file-uploads

Spinacz nie jest złym wyborem, to był " najlepszy" wybór przez długi czas. Ale Carrierwave zdecydowanie wygląda jak nowa generacja;)

 42
Author: Robin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-14 16:37:40

Użyłem CarrierWave i po kilku godzinach frustracji przechodzę na spinacz.

Oto problemy, które widziałem z CarrierWave:

  • nie można zweryfikować rozmiaru pliku. Istnieje artykuł wiki, który wyjaśnia, jak to zrobić, ale nie działa.
  • walidacje integralności nie działają podczas korzystania z MiniMagick (bardzo wygodne, jeśli obawiasz się użycia pamięci RAM). Możesz przesłać uszkodzony plik obrazu, a CarrierWave na początku wyświetli błąd, ale za następnym czas to połknie.
  • nie można usunąć oryginalnego pliku. Możesz zamiast tego zmienić jego rozmiar, skompresować itp. Jest artykuł wiki wyjaśniający, jak to zrobić, ale znowu nie działa.
  • zależy od zewnętrznych bibliotek, takich jak RMagick czy MiniMagick. Paperclip działa bezpośrednio z wierszem poleceń convert (ImageMagick). Tak więc, jeśli masz problemy z Minimagick (miałem), stracisz godziny nurkowania w wyszukiwarkach Google. Zarówno RMagick jak i Minimagick są opuszczone w momencie pisania tego tekstu (I kontakt z autorem Minimagic, Brak odpowiedzi).
  • potrzebuje plików konfiguracyjnych. Jest to postrzegane jako zaleta, ale nie lubię mieć pojedynczych plików konfiguracyjnych wokół mojego projektu Tylko dla jednego klejnotu. Konfiguracja w modelu wydaje mi się bardziej naturalna. To kwestia gustu.
  • jeśli znajdziesz jakiś błąd i zgłosisz go, zespół programistów jest naprawdę nieobecny i zajęty. Powiedzą ci, żebyś sam naprawiał błędy. Wydaje się to osobistym projektem, który jest ulepszany w wolnym czasie. Dla mnie nie dotyczy to profesjonalnego projektu z terminami.
 40
Author: David Morales,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-27 22:47:12

Zadałbym sobie pytanie:

  • Czy będę często zmieniać rozmiar obrazu? Przykład: jeśli chcesz pozwolić użytkownikom zmienić rozmiar swoich zdjęć (lub potrzebujesz elastyczności rozmiaru z innego powodu), lub naprawdę szybki rozwój.

Tak: Ważka

No: albo Carrierwave albo Paperclip

 3
Author: montrealmike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-04 18:18:47