皆さん、こんにちは!
S3 CDN URL設定は写真にはうまく機能しますが、他の種類のファイルには効果がありません。アップロードされたファイルに対して、S3 CDN URLがエンドポイントURLに置き換えられているようです。
例えば、私のS3 CDN URLはhttp://qiniu.pengfeima.cnで、S3エンドポイントURLはhttp://qiniu-s3.s3-ap-southeast-1.qiniucs.comです。Discourseで短いURLをクリックすると、
http://qiniu-s3.s3-ap-southeast-1.qiniucs.com/original/2X/e/effbf521dc7f117e7d9b57ed41b2cac576bf39d5.txt
にリンクされますが、正しいURLはエンドポイントURLではなくCDN URLを使用する必要があります。
この問題をどのように解決できますか?
追伸
私のサイトでは、S3パラメータはパネルで設定されており、app.ymlでは設定されていません。
pfaffman
(Jay Pfaffman)
2
アセットを事前コンパイルしてS3にプッシュするためにrakeタスクを実行しましたか?
Set up file and image uploads to S3に記載されている通り
管理パネルで関連設定を設定しましたが、app.yml を変更してからアプリを再構築する必要がありますか?方法を知っていますが、リスクがあるようです。
pfaffman
(Jay Pfaffman)
4
再ビルドせずにrakeタスクを実行するには、次のようにします。
./launcher enter app
rake assets:precompile rake s3:upload_assets
どうもありがとうございます!
おっしゃる通りにしましたが、ウェブサイトが壊れてしまいました。アップロードされたアセットはエンコーディングの問題がある*.gz.jsです。
それはqiniuと呼ばれ、中国のクラウドサービスプロバイダーです。
https://www.qiniu.com
問題はCDNによって引き起こされていますか?
私の設定は次のとおりです。
## S3ストレージ
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: http://s3-ap-southeast-1.qiniucs.com
DISCOURSE_S3_ACCESS_KEY_ID: *************
DISCOURSE_S3_SECRET_ACCESS_KEY: *****************
DISCOURSE_S3_CDN_URL: http://qiniu.pengfeima.cn
DISCOURSE_S3_BUCKET: qiniu-s3
DISCOURSE_S3_BACKUP_BUCKET: qiniu-s3/backups
DISCOURSE_BACKUP_LOCATION: s3
pfaffman
(Jay Pfaffman)
8
CDN を使用した場合とバケットから直接アセットを取得した場合で、同じヘッダーを持つ同じファイルを取得できますか?
アセットのアップロード中に問題が発生したようです(写真のみ正常です)。アセットにCDNを使用するのはやめます。
重ねてお礼申し上げます!
「いいね!」 1