403 Грешка при използване на плъгина redmine_s3 на Heroku

Пускам Redmine (1.2-стабилен клон от http://github.com/edavis10/redmine) на Heroku и искате да използвате плъгина redmine_s3 (https://github.com/tigrish/redmine_s3), за да съхранявате активите на S3.

Използвах това ръководство за настройка: http://blog.firsthand.ca/2010/10/installing-redmine-on-heroku-with-s3.html

Работи страхотно локално, когато стартирам Redmine (в производствена среда), той създава конфигурираната кофа и съхранява всички активи, които кача там.

Но когато се опитам да го стартирам на Redmine, той се срива при първата заявка към Heroku

/usr/ruby1.9.2/lib/ruby/1.9.1/net/http.rb:2303:in `error!': 403 "Forbidden" (Net::HTTPServerException)
from /app/vendor/plugins/redmine_r3/lib/S3.rb:306:in `block in make_request'
from /usr/ruby1.9.2/lib/ruby/1.9.1/net/http.rb:627:in `start'
from /app/vendor/plugins/redmine_r3/lib/S3.rb:281:in `make_request'
from /app/vendor/plugins/redmine_r3/lib/S3.rb:157:in `create_bucket'
from /app/vendor/plugins/redmine_r3/lib/redmine_s3/connection.rb:57:in `create_bucket'
from /app/vendor/plugins/redmine_r3/init.rb:17:in `block in <top (required)>'

Нарушителният ред е тук: https://github.com/tigrish/redmine_s3/blob/master/lib/S3.rb#L306

Проверих двойно и тройно, конфигурацията на Heroku и моята локална машина (S3 идентификационни данни, име на кофа и т.н.) е абсолютно същата. Опитах различни имена на кофа и S3 идентификационни данни, все същата грешка. Самият Redmine (без плъгина redmine_s3) работи чудесно в Heroku. Веднага щом добавя плъгина... бум!

Подозирам, че заявката от Heroku към S3 има някои странни заглавки или други свойства, които карат S3 да отхвърли заявката.

Може ли някой да потвърди или отрече това? Ще се радвам на всякакви идеи как да направя това да работи.


person Manuel Meurer    schedule 09.08.2011    source източник


Отговори (3)


В кой регион е вашата кофа? Опитайте се да използвате кофа, намираща се в US Standard.

Имах същия проблем. Първо, използвах кофа, която се намира в Токио и получих същото съобщение за грешка. Проверих кода на отговора и тялото. Кодът на отговора беше 409 Конфликт. Съобщението за грешка беше по-долу.

BucketAlreadyOwnedByYou
Your previous request to create the named bucket succeeded and you already own it.

Мисля, че тази грешка означава, че redmine_s3 ще се опита да създаде кофа, която има името на кофата, което сте посочили в US Standard. Въпреки това вече има кофа със същото име в друг регион. Така че ще получите грешка.

person Yuki Awano    schedule 13.08.2011
comment
Юки, благодаря за отговора! Опитах се да създам кофата сам, вместо да позволя на redmine_s3 да я създаде, но получих същата грешка. Също така се опитах да създам кофата в различни региони и избрах дълги имена на кофи, които бяха гарантирано уникални. - person Manuel Meurer; 13.08.2011

Опитайте моя форк на приставката, изглежда си спомням подобен проблем миналата година. Може да се опитва да създаде кофата за тестовата среда, която, ако не сте дефинирали на Heroku, ще се провали (потенциална корекция).

person Eric Davis    schedule 09.08.2011
comment
Благодаря, Ерик, но както виждате във въпроса ми, вече използвам вашата вилица. :) Защо Redmine ще работи в тестова среда на Heroku? - person Manuel Meurer; 10.08.2011
comment
Всъщност мисля, че може да е проблем с Ruby 1.9.2. Използвам Redmine на Heroku с този плъгин (на ruby ​​1.8.7) и работи добре. Опитвам се да преобразувам приложението си в ChiliProject, което е разклонение на Redmine, но получавам 403 в стека Heroku Cedar, който е 1.9.2. - person Jack Chu; 30.08.2011

В крайна сметка това всъщност беше проблем с Ruby 1.9.2. Веднага след като преминах на 1.8.7, започна да работи! :) Благодаря на Джак Чу в коментарите към Ерик Дейвис, че ме насочи към правилния път.

person Manuel Meurer    schedule 24.10.2011