アップロードのためのS3互換のオブジェクトストレージプロバイダーを設定する

Scalewayは何か変更しましたか? 48時間前までは機能していましたが、もう機能しません。

「いいね!」 1

請求書は支払われましたか?何が問題ですか?画像は機能していますか?すべてなくなってしまったのですか、それとも新しいものを追加できないのですか?

「いいね!」 1

もう少しサポートを追加していただけますか?例えば、中国のTencent COSは中国のユーザーにとってより便利であり、Tencent CloudのCOSは世界中にCDNノードがあり、アクセスが非常に高速です。

試しましたか? 動作しますか?

テスト環境で使用しましたが、Tencent COSにしかバックアップできません。開発者が中国にいることを考慮して、Discourseの公式でTencent COSのサポートを追加していただけると幸いです。

「いいね!」 1

あなたが何をしたのか、どのようなエラーや問題が発生したのかを共有する必要があると思います。そうすれば、誰かがそれを機能させる方法を提案できるかもしれません。他の例を見て、それらを使用して機能させることができるかどうかを確認することもできます。

コアに変更を加えてサポートすることは、あまり期待できないと思います。

「いいね!」 1

Backblaze:

  • アカウントにB2バケットを設定しました
  • app.ymlenvセクションに詳細を追加しました
  • ./launcher rebuild appを実行しました

…しかし、これらの設定が有効になったという確認がDiscourseインスタンスのダッシュボードに表示されません。どこを確認すればよいですか?

「いいね!」 1

こんにちは。

Cloudflare R2 をアップロードとバックアップの両方で正常にテストし、使用することができました。詳細な投稿はこちらです: Cloudflare R2: Navigating Setup and Handling Configuration Errors - #40 by kamaljain

お手数ですが、皆様の方でもテストしていただき、「Works with Discourse」を Cloudflare R2 について「はい」にレビューしていただけますでしょうか。実際、S3 よりも簡単で、より経済的であり、10GB 未満のストレージであれば無料です。

「いいね!」 2

私もマルチサイトでセットアップをテストしましたが、機能していると思います。

バックアップのリストを取得できるかどうか疑問に思わせるものを見ました。セットアップを確認してみます。

「いいね!」 1

バックアップは表示されています。復元はまだ試していません。

「いいね!」 1

こんにちは、お兄さん。チャットできますか?MinIOの設定で問題が発生しました。
ありがとうございます。

iDrive 設定

iDrive の E2 バージョンの s3 ストレージを、以下の設定で使用したところ、完全に機能したことを報告します。

yaml ファイル内の ENV 設定

バケットには、iDrive の設定で少なくとも PublicRead の権限があることを確認してください。

以下は、uploadsbackups を共有する 1 つのバケットに使用した設定です。

DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: your-region
DISCOURSE_S3_ENDPOINT: https://your-idrive-endpoint.dev
DISCOURSE_S3_ACCESS_KEY_ID: your-access-key
DISCOURSE_S3_SECRET_ACCESS_KEY: your-secret-key
DISCOURSE_S3_CDN_URL: https://your-custom-cdn-url.com/uploads
DISCOURSE_S3_BUCKET: your-bucket-name/uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name/backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false

デフォルトでは、iDrive には Share everything in this region with every origin が設定されているため、ソースに関係なくそのまま機能するはずです。必要に応じて、独自のドメインに制限してください。

Cloudflare のオリジン証明書を使用して、iDrive エンドポイントを指す CNAME を作成しました。

既存の添付ファイルを同期する

再構築

これらの ENV 設定を変更した後、アプリケーションを再構築してください。


アップロードと再ベイク

次に、コンテナに入り、以下を実行します。

rake uploads:migrate_to_s3

アップロードが完了するのを監視し、次に以下を実行します。

rake posts:rebake_uncooked_posts

コンテナを終了します。


yaml ファイルの hooks セクションに追加する

hooks セクションで

after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

これにより、添付ファイルがアップロードされた後、js/css ファイルが iDrive にアップロードされることが保証されます。そうしないと、すべてが不足しているため、ブラウザで多くのコンソールエラーが発生します。


再構築

アセットコマンドが実行された後、再度再構築してください。

すべて問題ないはずです!

「いいね!」 2

恐らく、Hetznerのオブジェクトストレージサービスを表に追加すべきではないでしょうか。

「いいね!」 2

Contabo をファイルアップロードに使用できました。古い(移行された)ファイルと新しいアップロードの両方が問題なく機能しました。私の場合は、バケット URL が https://eu2.contabostorage.com/mybucket でした。
トリックは、EU2 をバケット名として、https://contabostorage.com/mybucket をエンドポイントとして設定することでした。
唯一の問題は、サイトをロードするときに、プラグインの js のような他のファイルもバケットからリクエストされ、ファイルが利用できないためロードされないことです。これは CDN URL をバケットと同じに設定したためだと理解しましたが、これはまだあまり明確ではありません。誰か設定方法を教えてくれませんか?理解したところによると、メインドメイン(ディスコースサーバー)を指す cname アドレスを作成し、それを Cloudflare でプロキシする必要があるということですが、これは正しいですか?

「いいね!」 1

この部分を省略しました。

「いいね!」 1

確かにやったはずなのですが、もしかしたら間違いがあったのかもしれません。結局バックアップから復元したので、記憶を頼りにしている部分もあります……。でも、なぜバケットをCDNに設定することが推奨されないのか、それがどのような問題を引き起こす可能性があるのか、疑問に思っています。明日再試行します。
ありがとうございます。

「いいね!」 1

説明されている問題は、CDN URL をバケット URL として設定したことが原因ではないと思います(つまり、アップロードは機能するが、アセットが機能しない場合)。

「いいね!」 2

明日、更新します。ありがとうございます。

「いいね!」 1

うまくいきました :partying_face:
他の人の助けになればと、行った手順をステップバイステップで説明します。

app.yml を編集し、以下を追加しました。

  after_assets_precompile:
    - exec:        cd: $home
        cmd:          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

hooks の後(git clone plugins… の直後)です。
そして

  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: EU
  DISCOURSE_S3_ENDPOINT: https://contabostorage.com/bucketname
  DISCOURSE_S3_ACCESS_KEY_ID: accesskey
  DISCOURSE_S3_SECRET_ACCESS_KEY: secretaccesskey
  DISCOURSE_S3_CDN_URL: https://eu2.contabostorage.com/randomlettersthatcontaboaddstothelinks:bucketname
  DISCOURSE_S3_BUCKET: eu2
  DISCOURSE_BACKUP_LOCATION: s3
  DISCOURSE_S3_INSTALL_CORS_RULE: false

メール設定の後です。
次に、Discourse のメニューで同じ値を設定し、S3 アップロードを有効にしました。
以下でアプリを再構築しました。

cd /var/discourse
sudo ./launcher rebuild app

その後

./launcher enter app
rake uploads:migrate_to_s3

これは少し時間がかかります。私の場合は数時間でした(80,000 ファイル、100GB)。

完了したら

rake posts:rebake_uncooked_posts
「いいね!」 4

更新:一部のユーザーがサイト(アセットとファイル)を読み込めませんでした。contabostorage.com ドメインがフィッシングサイトとして一部のブロックリストに掲載されていることが判明しました。解決策は簡単でした。

Can I Setup a Custom Domain for My Object Storage? : Contabo に記載されているように、files.mydomain.com のサブドメインを設定しました。

app.yml で DISCOURSE_S3_CDN_URL を https://files.mydomain.com に更新しました。

その後

cd /var/discourse
sudo ./launcher rebuild app

そして、作業を完了するために

./launcher enter app
rake posts:rebake

これで、すべてのアセットとアップロードは https://files.mydomain.com/pathtofile/file.ext から読み込まれます。

完了しました。

「いいね!」 2