2009-08-28 14 views
3

私はpaperclipプラグインをインストールしてローカルで使用できました。アマゾンS3で動作するように設定したら、NoSuchBucket(指定されたバケットは存在しません)というエラーが表示され続けます。 Paperclipのドキュメントには、バケツが存在しない場合は作成されますが、明確に 私のケースで何かがうまくいかないと書かれています。Ruby on Rails/Paperclip/AWS :: S3 :: NoSuchBucketエラー

Iが最初

両方がenvironment.rbにファイルの

config.gem "aws-s3", :lib => "aws/s3" 
config.gem 'right_aws', :version => '1.9.0' 

に対応しているAWS-S3 GEM(v0.6.2) その後もインストールright_aws宝石(v1.9.0)をinsalled

paperclipによるimage.rbファイルのコードは次のとおりです。

class Image < ActiveRecord::Base 

    belongs_to :work 

    has_attached_file :photo, :styles => {:big => "612x1224>", :small => "180X360>", :thumb => "36x36#"}, 
         :storage => 's3', 
         :s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV], 
         :path => ":attachment/:id/:style/:basename.:extension", 
         :bucket => 'my-unique-image-bucket' 

    attr_protected :photo_file_name, :photo_content_type, :photo_size 

    validates_attachment_presence :photo 
    validates_attachment_size :photo, :less_than => 3.megabytes 
    validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png', 'image/gif'] 

end 

答えて

3

これはそれだけではないかと思っていますが、s3_credentialsの読み込みは、本番サイトで使用しているものとは異なります。

マイ設定行は次のとおりです。

:s3_credentials => "#{RAILS_ROOT}/config/s3.yml" 

代わりの

:s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV] 
+0

実際のプラグインはYAMLファイルを読み込みますが、そうしないでください。 – Garrett

+0

YAMLファイルをロードする方法を試しても、それはまだ動作しません。それがうまくロードされ、ロードできなかったり、いずれかのキーが間違っていたりすると、さまざまなエラーが発生するため、信任状ファイルには何も問題はありません。 – fahrio

+0

手動でバケットを作成しましたか? (S3Fox、Transmit、S3Hubを使用して)アップロードしてみましたか? –

0

私はFirefox用s3foxプラグインをインストールし、プラグインでバケットを作成しました。今では、識別されたバケツが既に作成されているので、PaperclipはS3でうまく動作します。

しかし、上記のコードでペーパークリップが新しいバケットを作成できないことにはまだ興味があります。

+0

私はわかりませんが、S3を使用することのいくつかの側面はまだ私にとって非常に薄れそうに見えます。たとえば、 "ディレクトリ"構造(スラッシュが付いたキー)は、クライアントアプリケーション間で動作しないことがよくありますが、私はS3にも大きな問題がありました。それはまだ素晴らしいサービスであり、私はそれに頼っていますが、ツールチェーンを完全にテストする必要があります。 –

1

それが作成する必要がありますが、バケットが、これは一点でのバグだった:私は最近、この問題を抱え

http://groups.google.com/group/paperclip-plugin/browse_thread/thread/42f148cee71a0477

は、それはサーバの時間が非常オフだったことが判明し、S3はいずれかを許可するwouldntはアップデート「そこまで将来に」または類似しているが、レールのエラーNoSuchBucketだった...

を混乱さ..

0

場合は、誰もがグーグル経由でここに巻き上げる:私は誤ってまたはを切り替えたとき、私はこれと同じエラーを見ました私がAWS::S3::S3Object.storeに渡していた2番目と3番目のパラメータの値を返します。

0

あなたのケースではありませんが、AWSではバケット名に大文字を使用できません。クリップクリップではチェックされません。create_bucketにはありません。

関連する問題