1

動作中の EC2 インスタンスのクローンを作成して、セカンダリ ステージング サーバーを作成しました。sorl-thumbnail を除いて、すべてが正常に機能しています。

受け取ったエラーについて説明する前に、使用しているスタックについて説明しておくと役立つと思います。これには 3 つの EC2 インスタンスが含まれます。NginxおよびGunicornと組み合わせてdjangoを実行するアプリサーバー。MySQL と Redis を実行するデータベース。Nginx を実行するメディア サーバー。アプリ サーバーは NFS を使用して、メディア サーバーからメディア ディレクトリをローカルにマウントします。AWS で適切なポートがすべて開いており、アプリ サーバーがメディア サーバーの /etc/exports に追加されています。

私が見ている問題について... sorl-thumbnail によって生成されるすべての画像の img src 属性が空です。django アプリのログを見ると、欠落しているすべての画像に対して次のようなエントリが表示されます。

[04/29/2013 13:11:54] DEBUG   : Could not find thumbnail image for rendering </media/images/12345.jpg>
ThumbnailException: Source file: '/images/12345.jpg' does not exist.
[04/29/2013 13:11:54] DEBUG   : Could not retrieve image for </media/images/12345.jpg>

ただし、12345.jpg は /media/images/ に存在します。

私は金曜日のほとんどを費やして問題を解決しようとしましたが、役に立ちませんでした。誰かがこのようなものに出くわしましたか?

4

1 に答える 1

1

画像のサムネイルなどの生成されたデータは、(比較的) 一時的なファイルシステムの場所に保存されることが多く、sorl-thumbnail の動作も同じことを示唆しています。

サムネイル テンプレート タグ sorl-thumbnail を使用すると、Key Value Store でサムネイルが検索されます。サムネイルのキーは、そのファイル名とストレージから生成されます。[...]サムネイル キーがキー値ストアで見つかった場合、sorl-thumbnail はソースまたはサムネイルが存在するかどうかをチェックしないことに注意してください。

注: これは、ソース ファイルを変更または削除したり、サムネイルを削除したりした場合でも、 sorl-thumbnail は引き続き Key Value Store からフェッチされることを意味します。したがって、ソースまたはサムネイル ファイルを削除または変更する場合は、Key Value Store に通知することが重要です。

[鉱山を強調]

現在、Amazon EC2インスタンスは通常、インスタンスのクローン作成時にコピーされる永続的なAmazon Elastic Block Store (Amazon EBS)ボリュームと、Amazon EC2 インスタンス ストアボリューム (通常は一時ストレージと呼ばれる)の 2 つの異なるストレージ タイプを備えています。インスタンスのクローン作成時に失われるもの。aws ec2 インスタンス/エフェメラル ストレージのバックアップを取る方法に対する私の回答を参照してください。この違い/問題の詳細については。

したがって、おそらくサムネイルは一時的なボリュームに保存されているため、それに応じて今すぐ生成する必要があります。

于 2013-04-29T18:52:09.157 に答える