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

**URL:** https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916
**Category:** Self-Hosting
**Tags:** cdn, configuring, how-to, reference
**Created:** [2020 年 4 月 22 日午後 10:37 UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916 "2020-04-22T22:37:37Z")
**Posts on this page:** 1
**Showing post:** 348

<div class="post-metadata">

### Author: ![Jerome\_Hordies](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jerome_hordies/32/267141_2.png) [@Jerome\_Hordies](https://meta.discourse.org/u/Jerome_Hordies)
#### Post date: [2022 年 8 月 25 日午後 9:45 UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/348 "2022-08-25T21:45:23Z")

</div>

質問への回答を要約します。

- Web UIと環境変数は衝突しますか？

> [@pfaffman](#):
>
> 環境変数（使用すべきです）を使用すると、それらの設定はWeb UIに表示されなくなります。

- アセットはいつバケットにアップロードされるべきですか？  
これを `app.yml` の `hook` セクションに追加すると、`after_assets_precompile`（アプリの再構築中）にアップロードされます。

> [@pfaffman](#):
>
> > [@Falco](#):
> >
> > ```plaintext
> > after_assets_precompile:
> > - exec:
> > cd: $home
> > cmd:
> > - sudo -E -u discourse bundle exec rake s3:upload_assets
> > 
> > ```

- これをデバッグするにはどうすればよいですか？ログにエラーが表示されません。  
次を実行します：

```plaintext
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace

```

- 設定でバケットのサブフォルダを設定することは可能ですか？

> [@zogstrip](#):
>
> ### アップロードとバックアップに別々のバケットを使用する必要がありますか？
> 
> いいえ、そうする必要はありませんが、通常は設定が最も簡単です。基本的に、2つの異なるバケットを使用するか、バックアップバケットにプレフィックスを使用する必要があります。たとえば、次の組み合わせが機能します。
> 
> 1. 異なるバケット
> 
> - **s3\_upload\_bucket** : `your-uploads-bucket`
> - **s3\_backup\_bucket** : `your-backups-bucket`
> 
> 1. 異なるプレフィックス
> 
> - **s3\_upload\_bucket** : `your-uploads-bucket/uploads`
> - **s3\_backup\_bucket** : `your-uploads-bucket/backups`

> Amazon S3 バケットに保存するデータを整理するためにプレフィックスを使用できます。プレフィックスは、オブジェクトキー名の先頭にある文字列です。プレフィックスは、オブジェクトキー名の最大長（1,024 バイト）の範囲内で任意の長さにすることができます。プレフィックスは、ディレクトリと同様の方法でデータを整理する方法と考えることができます。ただし、プレフィックスはディレクトリではありません。]([Organizing objects using prefixes - Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html))

- これが機能したら、以前にアップロードされた画像はバケットに転送されますか？再ベイクすると、以前にアップロードされた画像の URL はどのようになりますか？

> [@zogstrip](#):
>
> ### Discourse インスタンスで S3 アップロードを有効にしました（しばらく前から稼働しています）。既存のローカルアップロードはどうすればよいですか？
> 
> 既存のアップロードを S3 に移行するには、いくつかの **rake タスク** を実行できます。これらを実行するには、SSH アクセス、root 権限が必要であり、Discourse アプリに入っている必要があります（[管理者一括操作](https://meta.discourse.org/t/administrative-bulk-operations/118349)を参照）。ああ、そして [app.yml でいくつかの環境変数を設定する必要があります](https://meta.discourse.org/t/setting-up-file-and-image-uploads-to-s3/7229/175)。大胆な人向けではありません。
> 
> すべてが完了したら、rake タスクの準備が整います。
> 
> ```plaintext
> rake uploads:migrate_to_s3
> rake posts:rebake
> 
> ```
> 
> これらが完了したら（アップロードが正常に機能している場合）、バックアップにアップロードを含める必要はなくなります。ボーナスとして、[コマンドラインからバックアップを復元](https://meta.discourse.org/t/restore-a-backup-from-command-line/108034)できるようになります（app.yml のコピーをどこかに保管しておくだけです）。

---

_[View the full topic](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916)._
