2

refile/refileのチュートリアルに従い、`refile-s3 を使用して写真を S3 にアップロードしようとしました。しかし、それはまだローカルホストにアップロードされています.. なぜだろうか??

Github のコード: https://github.com/chrisyeung1121/refile-example

何か不足していますか?

4

1 に答える 1

0

サンプルアプリを実行したところ、すべてが正しく行われ、ファイルが S3 にアップロードされました。/stores3 バケットを表示すると、次のようなファイルを含むフォルダーがあるはずです。8d005532259e4abc0.....これは、データベースに保存されている ID に対応します。あなたの場合、IDは User モデルに profile_image_id として保存されます。

attachment_urlの結果が返さ<img src="/attachments/store/fill/300/300/8d005532259e4abc0...../profile_image.jpg" alt="Profile image">れて、まだローカルホストにアップロードされているように見えて 混乱するかもしれません。

refile が amazon s3 からファイルをダウンロードし、その場で 300x300 に変更し、ブラウザに送信します。ただし、多くの処理能力を浪費するため、ページが読み込まれるたびにこれを行うべきではありません。これは CDN が必要な場所であり、refile は CDN を使用するように設計されています。このようにして、処理された画像がキャッシュされ、すべてがはるかに高速になります。

refile.rb構成ファイルで:

Refile.cdn_host = "https://your-dist-url.cloudfront.net"

または私の場合、私はそれを本番環境に制限しました:

if Rails.env.production?
  Refile.cdn_host = "https://your-dist-url.cloudfront.net"
end

0.6.0 より前のバージョンを使用している場合、.cdn_host は .host にする必要があることに注意してください。

今、これは次のようなものを返すはずです<img src="https://your-dist-url.cloudfrond.net/attachments/store/fill/300/300/8d005532259e4abc0...../profile_image.jpg" alt="Profile image">

詳細については、公式ドキュメントを参照してください。

于 2016-04-09T15:21:52.727 に答える