0

ファイルのアップロードにrefile gemを使用しています。私はamazon s3パブリックバケットに直接ファイルをアップロードしています。上記の資産のために、このようなもので、Rails:Refile gem(attachment_image_tagは間違ったURLを出力します)

https://s3.amazonaws.com/{bucket-name}/store/6309035935359dca1ef549170e7facac9ab3553ad53946cea0bcb8335475

私はS3からこれらの資産を提供するアマゾンCloudFrontのを使用していますので、CloudFrontはのURL::ファイルは、次のURLにうまくアップロードされている

https://{distribution-name}.cloudfront.net/store/6309035935359dca1ef549170e7facac9ab3553ad53946cea0bcb8335475

ブラウザから直接アクセスすると両方のURLが正常に動作します。私はヘルパー関数以下のリファイルの宝石を使用しています私のアプリのビューファイルで、この資産を表示するには:

attachment_image_tag(@post, :profile_img, :fill, 350, 350)

今問題があり、このヘルパーメソッドは、このようなURLに何かを出力します。

https://{distribution-name}.cloudfront.net/attachments/5845d0a97dc77a57b5b05742a1eb26d629d7cdaa/store/fill/350/350/6309035935359dca1ef549170e7facac9ab3553ad53946cea0bcb8335475/file

このURLは上記クラウドフロントURLと異なるため、画像を表示していません。 attachment_image_tag関数が正しいクラウドフロントURLを印刷するようにするにはどうすればよいですか?

答えて

0

問題は解決しました。問題はgithubの上で別の人によって指摘された:https://github.com/refile/refile/issues/500#issuecomment-239784247

あなたがその起源として あなたのS3バケットを使用してCloudFrontの配信を設定していることのように聞こえますか?ただし、RefileはS3のファイルにURL を直接生成しません(READMEセクション3.ラックアプリケーションを参照)。 したがって、Cloudfrontディストリビューションのオリジンを にアプリケーションのURLに設定する必要があります。こうすることで、最初のリクエストでファイルが からストリーム配信され、今後のリクエストでは のCloudfrontによってキャッシュされます。