403 Ошибка при использовании плагина redmine_s3 на Heroku - PullRequest
2 голосов
/ 09 августа 2011

Я использую Redmine (ветка 1.2-stable из 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 отклонить запрос.

Кто-нибудь может подтвердить или опровергнуть это? Я был бы рад любым идеям о том, как заставить это работать.

Ответы [ 3 ]

1 голос
/ 13 августа 2011

В каком регионе находится ваше ведро? Попробуйте использовать ведро, расположенное в стандарте США.

У меня были такие же проблемы. Сначала я использовал ведро, расположенное в Токио, и получил то же сообщение об ошибке. Я проверил код ответа и тело. Код ответа был 409 Конфликт. Сообщение об ошибке было ниже.

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

Я думаю, что эта ошибка означает, что redmine_s3 попытается создать сегмент, имя которого указано в стандарте США. Однако есть ведро с таким именем уже в другом регионе. Таким образом, вы получите ошибку.

0 голосов
/ 24 октября 2011

В конце концов, это была проблема с Ruby 1.9.2.Как только я опустился до 1.8.7, он начал работать!:) Спасибо Джеку Чу в комментариях Эрику Дэвису за то, что он привел меня на правильный путь.

0 голосов
/ 10 августа 2011

Попробуйте мой форк плагина , похоже, я помню такую ​​проблему в прошлом году. Возможно, он пытается создать корзину для тестовой среды, которая, если вы не определили ее в Heroku, может завершиться ошибкой ( потенциальное исправление ).

...