30 сентября 2026 г. · 6 мин чтения
Как использовать свой домен для ссылок на файлы в бакете
Ссылка вида https://files.example.com/report.pdf вызывает доверие, переживет смену провайдера хранилища и не раскрывает имя бакета. Все крупные провайдеры умеют отдавать бакет на вашем домене по HTTPS, но у каждого это устроено по-своему.
Cloudflare R2
Самый простой вариант. Домен должен быть зоной в том же аккаунте Cloudflare, что и бакет.
- Откройте Settings бакета и выберите Add в разделе Custom Domains.
- Введите
files.example.com, проверьте DNS-запись и выберите Connect Domain.
Cloudflare сам создаст DNS-запись и сертификат. Подробности в статье как сделать бакет R2 публичным.
Amazon S3 с CloudFront
S3 сам по себе не умеет отдавать HTTPS на собственном домене, поэтому перед ним ставят CloudFront:
- Запросите сертификат для
files.example.comв AWS Certificate Manager в регионе us-east-1 (CloudFront использует сертификаты только оттуда) и подтвердите его через DNS. - Создайте дистрибуцию CloudFront с вашим бакетом в качестве источника и Origin access control, чтобы бакет мог оставаться приватным. Примените политику бакета, которую предложит CloudFront.
- Добавьте
files.example.comкак alternate domain name и выберите сертификат. - У своего 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.
Перестанут ли работать старые ссылки, если я добавлю свой домен?
Нет. Исходный адрес провайдера продолжает работать рядом с собственным доменом. Новый домен будут использовать только ссылки, созданные после этого.
Можно ли перейти к другому провайдеру и сохранить ссылки?
Да, это одна из главных причин использовать свой домен. Скопируйте файлы в новый бакет с теми же ключами, направьте домен на него, и существующие ссылки продолжат работать.