2


1

403 Herokuでredmine_s3プラグインを使用するとエラーが発生する

Redoku(http://github.com/edavis10/redmineからの1.2安定ブランチ)を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 '

問題のある行はこちらです:https://github.com/tigrish/redmine_s3/blob/master/lib/S3.rb#L306

ダブルチェックとトリプルチェックを行いましたが、Herokuとローカルマシンの設定(S3資格情報、バケット名など)はまったく同じです。 別のバケット名とS3資格情報を試しましたが、それでも同じエラーです。 Redmine自体(redmine_s3プラグインなし)はHerokuでうまく機能します。 プラグインを追加するとすぐに…​ ブーム!

HerokuからS3へのリクエストには、S3がリクエストを拒否する奇妙なヘッダーまたはその他のプロパティがあると思われます。

誰もがこれを確認または否定できますか? この作品の作り方に関するアイデアがあれば嬉しいです。

3 回答


1


バケットはどの地域にありますか? 米国標準にあるバケットを使用してみてください。

私は同じ悩みを抱えていました。 最初に、東京にあるバケットを使用しましたが、同じエラーメッセージが表示されました。 応答コードと本文を確認しました。 応答コードは409競合でした。 エラーメッセージは次のとおりです。

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

このエラーは、redmine_s3がUS Standardで指定したバケット名を持つバケットを作成しようとすることを意味すると思います。 ただし、他の地域に同じ名前のバケットが既に存在します。 そのため、エラーが発生します。


0


https://github.com/edavis10/redmine_s3 [プラグインのフォーク]を試してみてください。昨年、そのような問題を覚えているようです。 テスト環境用のバケットを作成しようとしている可能性がありますが、Herokuで定義しないと失敗します(https://github.com/edavis10/redmine_s3/commit/8df30bb0607341d6f674fe63fa79c1e469a4cfc3 [潜在的な修正])。


0


最終的には、Ruby 1.9.2の問題でした。 1.8.7にダウングレードするとすぐに動作し始めました! :)私を正しい道に導いてくれたEric DaviesへのコメントでJack Chuに感謝します。