2

HerokuでRedmine( http://github.com/edavis10/redmineからの1.2-stableブランチ)を実行していて、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がリクエストを拒否するような奇妙なヘッダーやその他のプロパティが含まれていると思われます。

誰かがこれを確認または拒否できますか?これを機能させる方法についてのアイデアがあれば嬉しいです。

4

3 に答える 3

1

あなたのバケツはどの地域にありますか?USスタンダードにあるバケットを使用してみてください。

私も同じ問題を抱えていました。まず、東京にあるバケットを使用しましたが、同じエラーメッセージが表示されました。応答コードと本文を確認しました。応答コードは409Conflictでした。エラーメッセージは以下のとおりです。

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

このエラーは、redmine_s3が米国標準で指定したバケット名のバケットを作成しようとすることを意味していると思います。ただし、他の地域にはすでに同じ名前のバケットがあります。したがって、エラーが発生します。

于 2011-08-13T02:58:00.610 に答える
0

プラグインのフォークを試してみてください。昨年のような問題を覚えているようです。テスト環境用のバケットを作成しようとしている可能性があります。Herokuで定義しなかった場合、失敗します(修正の可能性があります)。

于 2011-08-09T23:34:28.510 に答える
0

結局、それは実際にはRuby1.9.2の問題でした。1.8.7にダウングレードするとすぐに動作し始めました!:)私を正しい軌道に乗せてくれたEricDaviesへのコメントのJackChuに感謝します。

于 2011-10-24T11:36:28.477 に答える