30 сентября 2026 г. · 6 мин чтения

Как использовать свой домен для ссылок на файлы в бакете

Ссылка вида https://files.example.com/report.pdf вызывает доверие, переживет смену провайдера хранилища и не раскрывает имя бакета. Все крупные провайдеры умеют отдавать бакет на вашем домене по HTTPS, но у каждого это устроено по-своему.

Cloudflare R2

Самый простой вариант. Домен должен быть зоной в том же аккаунте Cloudflare, что и бакет.

  1. Откройте Settings бакета и выберите Add в разделе Custom Domains.
  2. Введите files.example.com, проверьте DNS-запись и выберите Connect Domain.

Cloudflare сам создаст DNS-запись и сертификат. Подробности в статье как сделать бакет R2 публичным.

Amazon S3 с CloudFront

S3 сам по себе не умеет отдавать HTTPS на собственном домене, поэтому перед ним ставят CloudFront:

  1. Запросите сертификат для files.example.com в AWS Certificate Manager в регионе us-east-1 (CloudFront использует сертификаты только оттуда) и подтвердите его через DNS.
  2. Создайте дистрибуцию CloudFront с вашим бакетом в качестве источника и Origin access control, чтобы бакет мог оставаться приватным. Примените политику бакета, которую предложит CloudFront.
  3. Добавьте files.example.com как alternate domain name и выберите сертификат.
  4. У своего DNS-провайдера создайте CNAME-запись с files на адрес дистрибуции d….cloudfront.net.

Эндпоинт статического сайта S3 тоже принимает CNAME, но только по обычному HTTP и только если бакет назван точно так же, как домен, поэтому CloudFront удобнее.

DigitalOcean Spaces

Включите CDN для Space и добавьте custom subdomain в его настройках. Если DNS вашего домена управляется DigitalOcean, он может автоматически выпустить сертификат Let's Encrypt; в противном случае загрузите собственный сертификат. После этого файлы отдаются по адресу https://files.example.com/key.

Backblaze B2

B2 отдает публичные файлы по URL вида https://f003.backblazeb2.com/file/your-bucket/key. Чтобы использовать свой домен, обычно подключают Cloudflare: добавьте проксируемую CNAME-запись с files.example.com на хост вашего бакета f00X.backblazeb2.com, а затем правило перезаписи, которое добавляет /file/your-bucket в начало пути. Backblaze описывает эту настройку в документации и не берет плату за скачивание трафика, который проходит через Cloudflare.

Когда домен заработал

  • Откройте файл по адресу https://files.example.com/<key> в приватном окне браузера, чтобы убедиться, что он публичный.
  • Используйте домен как базовый URL везде, где вы формируете ссылки, чтобы все ссылки, которыми вы делитесь, вели на него.
  • Загружайте файлы по-прежнему через API-эндпоинт провайдера. Собственный домен нужен только для чтения.

Частые вопросы

Можно ли использовать корневой домен вместо поддомена?

В Cloudflare R2 обычно да: он умеет подключать корневой домен. Большинство других вариантов опираются на CNAME, а его проще настроить на поддомене вроде files.example.com.

Перестанут ли работать старые ссылки, если я добавлю свой домен?

Нет. Исходный адрес провайдера продолжает работать рядом с собственным доменом. Новый домен будут использовать только ссылки, созданные после этого.

Можно ли перейти к другому провайдеру и сохранить ссылки?

Да, это одна из главных причин использовать свой домен. Скопируйте файлы в новый бакет с теми же ключами, направьте домен на него, и существующие ссылки продолжат работать.