S3 CDN URL ignored when uploading into posts

All of our traffic goes through CloudFront, and static content is fetched by CloudFront from one of several S3 buckets.

With uploads being sent to S3, Discourse embeds the content with a generic bucket URL despite our having s3 cdn url set. Once submitted, posts appear to use the correct URL set in s3 cdn url, although this may also be because we have DISCOURSE_CDN_URL set as well (both are set to the same URL).

The post preview window references the standard S3 URL seen in the unbaked post, though. This is a problem because we use a private ACL on files uploaded to our Discourse uploads bucket, as content on this bucket should never be accessed outside of CloudFront. The result is a broken image in the preview window.

「いいね!」 2

長年この問題が報告されているのに修正されていないのはがっかりです。

@DanielMarquard ワークアラウンドを見つけたか、それともS3のACLを公開せざるを得なかったのですか?

実装がより複雑なため完全にサポートされていないとはいえ、これが不具合だと指摘するのは適切ではないと思います。

ドキュメントに記載されている通り、S3 アップロードは正常に機能し、正しく動作します。

@Stephen 確かに解釈の余地がありますね…

私には、ある場所では CDN の URL を使い、別の場所では使わない点が「壊れている」ように思えます。また、AWS が実際には非推奨としている設定(S3 バケットの公開 ACL)を強要しています。

Discourse プロジェクト全体としては初心者ですが、PR の作成なら確かにお手伝いできます。

今すぐ修正する価値があるかもしれません。AWS はパブリック読み取り ACL について、より真剣にユーザーに通知するようになっています。

「いいね!」 4

現在の実装では、以下のような IMG タグが不再使用されているため:

![image|690x298,50%](upload://eGAOR4Xy4aRM2lwPIuTokBf60jS.png)

上記に CDN を適用するのは非常に簡単で、トラフィックの削減にもつながります。

@vinothkannans さん、プレビューで CDN URL が使用されるように修正をお願いします。

現在、プレビューでは以下のように表示されています:

<img src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/6/6/66ef078b3ef9da9aa1b3356cb21fe22a0d25eaf0.png" alt="image" class="resizable" width="345" height="149">

代わりに、以下の CDN URL を表示するようにすべきです:

<img src="https://d11a6trkgmumsb.cloudfront.net/original/3X/6/6/66ef078b3ef9da9aa1b3356cb21fe22a0d25eaf0.png" alt="image" class="resizable" width="345" height="149">
「いいね!」 6

以下のコミットで修正済みです

「いいね!」 6

このトピックは 32 時間後に自動的に閉鎖されました。新しい返信は許可されていません。

S3 CDN URL が投稿へのアップロード時に無視されるでの議論を続けます。

この問題は再発したようです。meta で再現できます。

「いいね!」 3

@vinothkannans さん、@falco さん、これを確認してもらえますか?

「いいね!」 3

最近の変更により、アップロードされたファイルの URL は、初期のアップロードリクエスト自体から取得されるようになりました。以前は /uploads/lookup-urls.json エンドポイントから取得していました。このコミットで問題が解決するはずです。

「いいね!」 5

この修正は、プレビュー内のカスタム絵文字(例::allthethings:)には適用されていないようです。

「いいね!」 4

これには、データエクスポートや単なるファイル添付のような添付ファイルも含まれていません。それらは依然として S3 から提供されます。

それなら直せます!

「いいね!」 3