# DISCOURSE\_S3\_CDN\_URL を設定している場合でも、S3 からのダウンロード

**URL:** https://meta.discourse.org/t/downloads-coming-from-s3-even-with-discourse-s3-cdn-url-set/177000
**Category:** Support
**Created:** [2021 年 1 月 23 日午前 1:13 UTC](https://meta.discourse.org/t/downloads-coming-from-s3-even-with-discourse-s3-cdn-url-set/177000 "2021-01-23T01:13:14Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![foozmeat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/foozmeat/32/107214_2.png) [@foozmeat](https://meta.discourse.org/u/foozmeat)
#### Post date: [2021 年 1 月 23 日午前 1:13 UTC](https://meta.discourse.org/t/downloads-coming-from-s3-even-with-discourse-s3-cdn-url-set/177000/1 "2021-01-23T01:13:14Z")

</div>

[Configure an S3 compatible object storage provider for uploads](https://meta.discourse.org/t/using-object-storage-for-uploads-s3-clones/148916) のガイドに従って、アップロード用ストレージに Backblaze B2 を設定しましたが、奇妙な問題が発生しています。

スレッドを作成して画像をアップロードすると、img src は私の S3\_CDN\_URL に設定されます。しかし、zip ファイルをアップロードすると、URL は `/uploads` となり、S3\_CDN\_URL を経由せず、直接私のバケットにリダイレクトされます。`DISCOURSE_CDN_URL` は設定していませんが、このガイドによると、この問題には影響しないとのことです。

私の関連設定は以下の通りです：

```plaintext
  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: "us-west-000"
  DISCOURSE_S3_INSTALL_CORS_RULE: false
  DISCOURSE_S3_CONFIGURE_TOMBSTONE_POLICY: false
  DISCOURSE_S3_ENDPOINT: "https://s3.us-west-000.backblazeb2.com"
  DISCOURSE_S3_ACCESS_KEY_ID: "ID"
  DISCOURSE_S3_SECRET_ACCESS_KEY: "KEY"
  DISCOURSE_S3_CDN_URL: "https://devforum-b2-cdn.freetls.fastly.net"
  DISCOURSE_S3_BUCKET: "bucket-name"
  DISCOURSE_S3_BACKUP_BUCKET: "backup-bucket/devforum"
  DISCOURSE_BACKUP_LOCATION: s3

```

なぜ zip ファイルは画像とは異なる扱いになるのでしょうか？

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [2025 年 4 月 23 日午後 1:18 UTC](https://meta.discourse.org/t/downloads-coming-from-s3-even-with-discourse-s3-cdn-url-set/177000/2 "2025-04-23T13:18:27Z")

</div>

このストレージの仕組みとその設定は、長年にわたって大きな課題です。

私は画像をAws S3に保存していましたが、その後ストレージをローカルサーバーに戻しました。そうすると、突然何百枚もの画像が消えてしまいました。

これはあなたの質問への直接的な返答やコメントではありませんが、似たような問題に対して共感を示したいだけです。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2025 年 4 月 23 日午後 2:01 UTC](https://meta.discourse.org/t/downloads-coming-from-s3-even-with-discourse-s3-cdn-url-set/177000/3 "2025-04-23T14:01:48Z")

</div>

サイト設定を確認してください：`S3 全てのアップロードに CDN URL を使用`

画像だけでなく、アップロードされた全てのファイルに CDN URL を使用します。

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [2025 年 4 月 23 日午後 2:30 UTC](https://meta.discourse.org/t/downloads-coming-from-s3-even-with-discourse-s3-cdn-url-set/177000/4 "2025-04-23T14:30:19Z")

</div>

ありがとうございます。  
地元の友人に仕事を依頼しました。彼は現在対応中です。  
ただ、あなたに尋ねられたので、今このオプションを選択しました。「`Use CDN URL for all the files uploaded to s3 instead of only for images.`」

しかし、別の問題があるようです。彼はS3ストレージをローカルサーバーに移行しました。そのため、私の古い投稿の多くで、写真が10枚あった場合、半分が表示され、残りの半分が表示されなくなっています（[そのようなトピックの例](https://bathindahelper.com/t/bobby-cycle-shop-bathinda-is-now-verified-cycle-shop-on-google/3255)）。

彼は来週末にこれを解決するために作業する予定です。

* * *

* * *

彼に依頼する前に、私は単純にすべての画像をバックアップに含めるオプションを選択し、そのバックアップを復元しました。これにより、すべての画像をS3からローカルサーバーに移行できると考えていました。  
しかし、これはそれほど単純ではありません（metaの多くの関連トピックで調べているように）。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2025 年 4 月 23 日午後 2:38 UTC](https://meta.discourse.org/t/downloads-coming-from-s3-even-with-discourse-s3-cdn-url-set/177000/5 "2025-04-23T14:38:26Z")

</div>

> [@Bathinda](#):
>
> ありがとうございます。  
> 地元の友人に仕事を依頼しました。彼が対応中です。

すみません。別の問題について話していました。

そちらは、かなり複雑だと思います。

> [@Bathinda](#):
>
> s3ストレージをローカルサーバーに移行しました。

確かにそれは複雑ですね。

その投稿で画像が失われたのは、Uploadレコードが存在しないためだと思います。そのため、画像を復元するために何かを行う必要があります。間違っているかもしれませんが。

もし私の推測が正しければ、以前似たような問題を解決した方法を以下に示します。これ以上の無料サポートは提供しません。

```plaintext
def process_uploads
  begin
    # ファイル名のリストを読み込む
    filenames = File.readlines('/shared/uploads/allfiles.txt').map(&:strip)
    count = 0

    filenames.each do |filename|
      # ファイル名に /shared を追加する
      filename.gsub!(/\.\//,"")
      full_path = File.join('/shared/uploads/default/original/', filename)

      begin
        # パスが存在し、通常のファイル（ディレクトリではない）であることを確認する
        count += 1
        
        if File.exist?(full_path) && File.file?(full_path)
          # ファイルを開く
          File.open(full_path, 'r') do |tempfile|
            # 指定されたパラメータを使用してアップロードを作成する
            u = UploadCreator.new(tempfile, 'imported', {}).create_for(-1)
            puts "#{count} -- #{u.id}: #{u.url}"
          end
        else
          puts "警告: パスが見つからないか、通常のファイルではありません: #{full_path}"
        end
      rescue => e
        puts "ファイル #{full_path} の処理中にエラーが発生しました: #{e.message}"
        # 現在のファイルが失敗しても、次のファイルに進む
        next
      end
    end
  rescue Errno::ENOENT
    puts "エラー: files.txt が見つかりません"
  rescue => e
    puts "files.txt の読み込み中にエラーが発生しました: #{e.message}"
  end
end

# 処理を実行する
process_uploads;

```
