まず、コードで使用しようとしている URL は次のとおりです。
http://s3.amazonaws.com/hiphotos/ads/photos/000/000/015/original/test_tree.jpg
ブラウザでそのリンクにアクセスすると、次のように表示されます。
<message>
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
</Message>
<RequestId>810A6AE1D141304C</RequestId>
<Bucket>hiphotos</Bucket>
<HostId>
XXZ+s+slgZLsRWy5NiU/G0yAKBLftw0oT2dDKpas532qXJEPSrISVPqfZsEgpb2J
</HostId>
<Endpoint>hiphotos.s3.amazonaws.com</Endpoint>
したがって、正しいエンドポイントを使用して URL を変更すると、次のようになります。
http://hiphotos.s3.amazonaws.com/ads/photos/000/000/015/original/test_tree.jpg
どちらが正しい画像を返しますか。
ヨーロッパのバケットを使用している場合、これが発生する可能性があり、s3 へのプッシュに使用している gem に問題がある可能性があります。
Paperclip、S3、European バケットをうまく組み合わせる方法に関する記事がたくさんあります。
ただし、aws-s3 gem の代わりに Fog を使用するasset_sync gem を使い始めてから、ペーパークリップと S3 で問題が発生しなくなりました。
したがって、霧がこの問題を解決するのに何か関係があるのではないかと思います。他のものを使用している場合は、それに切り替えることをお勧めします。