私はdjango-compressorをherokuで使用しています。amazon s3で静的ファイルを提供しています。私は完全に圧縮機に新しいとS3午前:django-compressor、heroku、s3:リクエストの有効期限が切れました
https://xxx.s3.amazonaws.com/static/CACHE/css/989a3bfc8147.css?Signature=tBJBLUAWoA2xjGlFOIu8r3SPI5k%3D&Expires=1365267213&AWSAccessKeyId=AKIAJCWU6JPFNTTJ77IQ
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<RequestId>FE4625EF498A9588</RequestId>
<Expires>2013-04-06T16:53:33Z</Expires>
<HostId>Fbjlk4eigroefpAsW0a533NOHgfQBG+WFRTJ392v2k2/zuG8RraifYIppLyTueFu</HostId>
<ServerTime>2013-04-06T17:04:41Z</ServerTime>
</Error>
私が構成された2台のHerokuのサーバ、ステージング用と生産のための1つを持っています。彼らはそれぞれ独自のデータベースとs3バケットを持っています。それらは同じ設定ファイルを共有し、すべての固有の設定は環境変数として設定されます。静的ファイルが実際にそれぞれのバケットにプッシュされていることを確認しました。
COMPRESS_ENABLED = True
COMPRESS_STORAGE = STATICFILES_STORAGE
COMPRESS_URL = STATIC_URL
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_OFFLINE = False
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')
私はステージングまたは生産にHerokuのに更新をプッシュするたびに、私は最終的には上記の問題が発生した次のよう
コンプレッサー& S3の設定がされています。場合によっては1時間後、時には1日後、時には1週間後に、場合によっては更新が追い出されるとすぐに発生します。奇妙なことは、両方の環境に同じアップデートを適用すると、1つは動作し、もう1つはエラーが発生するか、どちらも最初は動作し、1つは1時間で失効し、もう1つは1週間で失効します。
誰かが何が起こっているのかを説明できると本当に感謝しています。明らかにExpiresパラメータは問題を引き起こしていますが、なぜ各プッシュで時間が変わるのでしょうか、何が時間を決定するのでしょうか?有効期限はどのように変更しますか?詳細が必要な場合はお知らせください。
更新:AWS_QUERYSTRING_AUTH = Falseを設定することで一時的に問題を解決しました。クエリ文字列にEXPIRATION TIMEを設定する方法はありません。要求ヘッダーでのみ使用します。
サーバーのシステム時刻が更新されていることを確認します。システム時刻が同期されていないVMを実行中にこのエラーが発生しました。 –
私はHerokuにいるので、システム時間を制御できません。 – arctelix