2

私はこれに困惑しています。Heroku でホストされているアプリのサムネイルのアップロードを処理するために Fog で Carrierwave を使用していますが、画像の URL が正しく生成されていないようです。

構成ファイルを 3 つの異なる方法でセットアップしようとしました。

CarrierWave.configure do |config|

  config.fog_credentials = {
     :provider => 'AWS',
     :aws_access_key_id => 'xxx',
     :aws_secret_access_key => 'yyy',
  }

  config.fog_host = 'https://s3.amazonaws.com/statics.gallery.spongecell.com'
end

画像の URL が適切に機能するようにしますが、ログに非常識なエラーが発生せずに新しい画像を保存することはできません (キーが一致しないと言った後、数百行の長さです)。

CarrierWave.configure do |config|

  config.fog_credentials = {
     :provider => 'AWS',
     :aws_access_key_id => 'xxx',
     :aws_secret_access_key => 'yyy',
  }

  config.fog_directory = 'statics.gallery.spongecell.com'
  config.fog_host = 'https://s3.amazonaws.com/'

end

アップロードは機能しますが、画像は機能しません! 画像の URL にバケット名がありません: http://s3.amasonaws.com//uploads/blah/etc

そして最も奇妙なのは:

CarrierWave.configure do |config|

  config.fog_credentials = {
     :provider => 'AWS',
     :aws_access_key_id => 'xxx',
     :aws_secret_access_key => 'yyy',
  }

  config.fog_host = 'https://s3.amazonaws.com/statics.gallery.spongecell.com'
  config.fog_public = false
end

両方とも機能しますが、画像の URL に s3 秘密鍵が追加され (悪い!)、非常に遅いです。ここで何が起こっている可能性がありますか?

前もって感謝します!

4

1 に答える 1

0

fog_host を設定する必要はまったくないと思います (空白のままにして、fog_directory を設定するだけで、必要なものが得られるはずです)。fog_public=false を設定すると、余分なものは秘密鍵を使用して生成された署名になりますが、実際には秘密を含むべきではありません (これは、S3 が通常非公開のものへのアクセスを一時的に提供できるようにする方法です)。それが役立つ/明確になることを願っています。

于 2013-06-07T17:16:00.683 に答える