Amazon S3ストレージのDiscourseサポートに関する問い合わせ

Discourse の Amazon S3 ストレージのサポートに関する技術的な問題について質問があります。

2013 年のフォーラム投稿で、Discourse の S3 サポートについてすでに議論されているのを見つけました。CDN オフロードに関連するスレッドもいくつか見つけましたが、このトピックに関する詳細な情報はあまりないようです。

自分で Discourse フォーラムを構築し、ビデオアップロードを有効にすることに非常にこだわってきました。多くのアイデアを思いつきましたが、プログラマーではないため、実践するのは困難でした。進捗するには、常に他の人の助けが必要でした。

Discourse 自体は小さなビデオアップロードをサポートしており、その機能はすでに有効にしています。しかし、Discourse のアーキテクチャは、ビデオアップロードを効率的に処理するのにはあまり適していません。多くの調査の結果、Amazon S3 ストレージを CDN オフロードと組み合わせて使用するか、または S3 ストレージとプロキシキャッシュ設定を使用することが可能であることがわかりました。

実際に、友人に S3 ストレージとプロキシキャッシュの設定を手伝ってもらいました。(明確化のため、コストの懸念から CDN の使用は検討しませんでした。Amazon S3 の CDN サービスはかなり高価になる可能性があります。)

現在、問題に直面しています。テスト中、S3 ストレージは正しく設定されており、理論的にはフォーラムからのすべてのアップロードが直接 S3 に送信されるはずですが、ビデオファイルは S3 ストレージにアップロードできません。

何が誤って設定されているか、またはこの問題の原因となっている可能性のあることを誰か説明していただけますか?

ありがとうございます。

代わりに何が起こりますか?エラーメッセージが表示されますか?

また、「最大添付ファイルサイズ(KB)」と「承認済み拡張機能」の設定も確認することをお勧めします。これらはどちらもサイト設定 - ファイルにあります。

CDNとS3を使用しても、クライアントの帯域幅と解像度に最適なトランスコーディングが提供されないため、このセットアップはビデオにはあまり適していないことに注意してください。

「いいね!」 3


ご返信いただき、誠にありがとうございます。状況は以下の通りです。
現在、フォーラムの画像はS3に正常にアップロードできますが、動画はできません。私には非常に混乱しています。

S3はまだ動画の処理には理想的ではないかもしれませんが、フォーラムの主なコンテンツはテキストと画像です。動画機能は一部のユーザーのニーズを満たすためだけであり、動画自体はそれほど大きくありません。リマインダーをいただき、誠にありがとうございます。

質問に答えていただけていません :slight_smile:

「いいね!」 3

AmazonのCDNはS3バケットからのEgressよりも安価です。S3バケットの前にCDNを配置することを強くお勧めします。

お伝えいただいていないエラーは、動画が大きすぎることが原因であると疑っています。それを変更する設定がありますが、Enable direct S3 uploads を有効にする方が良いかもしれません。

「いいね!」 3


フォーラムに動画をアップロードしようとすると、「申し訳ありませんが、ファイルが大きすぎます(最大サイズは50 MBです)。大きなファイルをクラウド共有サービスにアップロードしてから、リンクを貼り付けてください。」というメッセージが直接表示されます。

しかし、動画自体のサイズは10 MBしかありません。現在、配信にはS3ストレージとCloudFront CDNを使用しています。

トラブルシューティングが非常に困難です。事前の操作が何も行われていないことを前提とした正しい手順を教えていただけますでしょうか?友人に正しい手順に従ってもらい、再度試してもらいます。

こんにちは、ご返信ありがとうございます。

友人にS+ストレージとプロキシキャッシュ方式からS3ストレージとCloudFront CDN配信方式への切り替えを依頼しましたが、どうやら失敗したようで、その理由はまだわかっていません。そこで、友人が再試行できるように、正確な実行コマンドを提供していただけないかと思いました。

また、ユーザーの利便性のために、フォーラムに動画機能を搭載することには非常にこだわっています。そこで新しいアイデアを思いついたのですが、実現可能かどうかお伺いしたいです。ぜひご意見をお聞かせください。

まず、私はコーディングやプログラミングの知識が全くないことをお伝えしておきます。大学では日本文学を専攻していたため、日本語の学習以外はコードに関する理解は全くありません。もし私のアイデアが初見で素朴に聞こえることがあっても、ご容赦ください。

フォーラムのために借りていたサーバーが閉鎖されたおかげで、再構築に労力を費やすことになり、S3ストレージとCloudFront CDNの要点を学ぶことができました。そして、この知識を応用し、他にストレージやCDNのサービス提供業者がないか疑問に思いました。ChatGPTに相談したところ、望んでいた回答を得ることができました。

実は、以前から動画サイトを構築したいと思っていましたが、ハードディスクのコストがかかるため、すぐに諦めていました。新しいソリューションを知った今、Discourseフォーラムの動画をサポートするために、動画サイトを構築するというアイデアを再燃させています。

GPTの推奨に基づき、動画サイトシステムとしてPeerTubeまたはMediaCMSのいずれかを使用できることを学びました。どちらも優れています。

現在、2つの疑問点があります。

1つ目の疑問点: どちらの動画サイトシステムもBackblaze B2ストレージとCloudflare CDN配信をサポートしています。動画は自分のハードディスクに保存されないため、動画サイトの再生はすでにBackblaze B2 APIを呼び出しています。私が望んでいるのは、リンクを投稿するのではなく、フォーラムのアップロードボタンを使用して、私のMediaCMS(例えば)動画サイトを直接ソースとして呼び出すことで、フォーラムを動画サイトに接続することです。これは2回のAPI呼び出しを意味します。

  1. フォーラムがMediaCMS動画サイトを呼び出す。
  2. MediaCMS動画サイトがBackblaze B2ストレージを呼び出す。

このような繰り返しAPI呼び出しは技術的に可能でしょうか?

2つ目の疑問点: フォーラムシステムと動画サイトシステムは、ユーザーが同じアカウントを使用できるように、ユーザーアカウントシステムを共有できますか?これはAPI呼び出しがどのように機能するかに影響します。

  • オプション1: 動画サイトの管理者として、フォーラムにリンクされた管理者アカウントを登録します。フォーラムがAPI経由で動画をアップロードすると、技術的には管理者がMediaCMSサイトにアップロードすることになります。
  • オプション2: 共有ユーザーアカウントシステムを使用すると、動画アップロードはユーザー自身のフォーラムアカウントによって実行され、API経由でMediaCMSサイトに同期されます。その後、ユーザーは動画サイトで自分自身のアカウントの下にアップロードされた動画を見ることができます。

これらのアプローチについてGPTに相談したところ、GPTは一般的に肯定的なフィードバックをくれました。しかし、残念ながら、繰り返し使用する中で、GPTはガイダンスを提供し、高レベルの意思決定を支援することはできますが、詳細な回答については、不正確な場合があります。私自身はコーディングの知識がないため、これらのアイデアが本当に実現可能かどうかはわかりません。

可能であれば、これらのアイデアのどの部分が実現可能で、どの部分がそうでない可能性があるかをご指摘いただけると大変助かります。

彼らはこのトピックに参加すべきでしょう。アップロード用のS3互換オブジェクトストレージプロバイダーの設定に従い、ymllファイルに設定を記述し、アセットをS3にプッシュする部分を追加しましたか?

ブラウザがサイズを適切に伝達できていない可能性があります。

これを試しましたか?


こんにちは。状況は以下の通りです。
10MB未満の動画は自分のサーバーにアップロードできますが、動画ファイル自体はS3にアップロードできません。
動画をアップロードする際、システムは自動的に最初のフレームをサムネイルとしてキャプチャし、サムネイル画像はS3にアップロードできます。

ただし、10MBを超える動画については、何もアップロードできません。

もしあなたの友人がConfigure an S3 compatible object storage provider for uploadsに従っていれば、enable_s3_uploads は表示されなかったはずです。それらをENVではなくデータベースで設定することが問題の一部であるかどうかは不明です。

それは Enable direct S3 uploads とは同じではありません。「直接S3アップロードを有効にする」ということです。

Max image size KB Max attachment size KB も変更する必要があります。

しかし、最大アップロードサイズを100MBに変更して37MBのファイルをアップロードしようとしたところ、「ファイルが大きすぎます」というエラーが表示されたので、バグがあるというあなたの意見が正しいかもしれません。テストしたサイトはしばらく更新していません。

「いいね!」 1

app.ymlでも変更しましたか?

ご協力いただき、誠にありがとうございました。
彼は、Configure an S3 compatible object storage provider for uploads の指示に従ったが、うまくいかなかったと言っていました。
しかし、先ほど、あなたが提案したのと同じことを行い、最大アップロードファイルサイズを100MBに変更した後、ビデオはS3ストレージに正常にアップロードされました。
本当にありがとうございました!

それなら彼が間違っていたので、助けを求めるべきだった。おそらく、アセットをS3にアップロードする部分を省略したのだろう。

素晴らしい!その100MBの制限を増やす方法についても、どこかにトピックがあるはずだ。

「いいね!」 1