Каталог статей
Хотите создать сверхэкономичное хранилище с помощью Backblaze B2, но не знаете, как привязать доменное имя? Эта статья шаг за шагом проведет вас через весь процесс интеграции Backblaze с пользовательским доменным именем от Cloudflare.
Этот подробный анализ разрешения DNS, настройки SSL-сертификатов и параметров маршрутизации поможет вам идеально использовать возможности Bandwidth Alliance и добиться 100% бесплатного нисходящего трафика. Получите доступ к этому расширенному и простому руководству по настройке прямо сейчас!
Несколько дней назад я экспериментировал с хостингом изображений, пытаясь перенести все изображения со своего блога на Backblaze B2 и использовать CDN Cloudflare для ускорения их загрузки.
В результате все это заняло весь день.
Онлайн-уроки были разрозненными и несвязными, со множеством пропущенных или неверных шагов, что меня очень расстраивало. После завершения я решил пройти весь процесс от начала до конца, чтобы другие не совершили тех же ошибок.

Вкратце: это действительно отличное решение. Backblaze B2 предлагает бесплатный ежедневный лимит трафика, а в сочетании с кэшированием CDN от Cloudflare скорость достаточно высока, и затраты практически равны нулю. После месяца использования счет за трафик равен нулю (превышение бесплатного лимита может стоить всего несколько центов).
Ладно, хватит болтовни, давайте начнём.
Первый шаг — зарегистрировать учетную запись Backblaze и учетную запись Cloudflare. Это несложно; это может сделать любой.
Создайте хранилище (сумку для хранения).
После регистрации перейдите в панель управления Backblaze, нажмите «Мой аккаунт», затем «Корзины», а затем «Создать корзину».
Вы можете назвать корзину как угодно; главное — выбрать «Общедоступная» для прав доступа. Все остальные параметры оставьте по умолчанию.

После создания изображения вы можете загрузить его, чтобы проверить, доступно ли оно для всех пользователей. При нажатии на подробную информацию об изображении появится ссылка, которая будет выглядеть примерно так:
https:// f005.backblazeb2. com/file/bucket-name/xxxxx.jpg

Это доменное имя было присвоено Backblaze случайным образом, и, честно говоря, оно не очень эстетично, к тому же оно напрямую раскрывает информацию о вашем хранилище. Поэтому следующий шаг — переход на Cloudflare.
DNS
Чтобы добавить свой сайт в Cloudflare, если вы уже приобрели домен в другом месте, выберите «Добавить сайт» и измените DNS на DNS-сервер Cloudflare, например, danica.ns.cloudflare.com. Вам будут предоставлены подробные инструкции по выполнению каждого шага.


После добавления сайта добавьте запись DNS.
Выберите тип CNAME, введите желаемый поддомен в качестве имени (например, oss) и укажите домен, полученный от Backblaze, в качестве целевого (например, f005.backblazeb2.com). Не забудьте включить значок оранжевого облака для отображения статуса прокси; это необходимо для использования CDN Cloudflare.

На данном этапе вы можете получить доступ к изображениям через свой собственный домен, следующим образом:
https:// oss.xxx .com/file/bucket-name/xxxxx.jpg
Выглядит намного лучше, чем исходное случайное доменное имя, но этого всё ещё недостаточно. Потому что URL по-прежнему содержит строку "/file/bucket-name/", что не только некрасиво, но и раскрывает структуру вашего хранилища, создавая ощущение небезопасности.
Перезаписать путь URL
Перейдите в панель управления Cloudflare, нажмите «Правила», затем «Обзор», затем «Правила перезаписи URL» и создайте новое правило.

Вы можете назвать правило как угодно, выбрать "Не включать" в качестве URL-адреса запроса, а затем указать /file/. Это означает, что будут обрабатываться только запросы, не содержащие путь /file/.
Однако, если вы хотите, чтобы правила были более точными, вы можете напрямую сопоставить этот поддомен.

Заполните последнюю ячейку следующим образом:
concat(/file/桶名, http.request.uri.path)
Затем выполните развертывание.
После этого результат доступа будет следующим:
https:// oss.xxx.com/ xxxxx.jpg
Здесь безупречно чисто, и нет ничего лишнего.
Это приятно.
Удалите ненужные заголовки ответа.
Этот шаг необязателен, но я рекомендую его выполнить.
Заголовки ответа Backblaze содержат множество информации, начинающейся с "x-bz-", например, "x-bz-file-id", "x-bz-file-name" и "x-bz-content-sha1". Эта информация раскрывает подробности о вашем файловом хранилище, которые не обязательно показывать пользователям.
Операция аналогична предыдущей. В разделе правил выберите «Правила преобразования заголовка ответа» и создайте новое правило.

Настройте удаление следующих заголовков:
x-bz-content-sha1 x-bz-file-id x-bz-file-name x-bz-info-src_last_modified_millis x-bz-upload-timestamp
Мне кажется, я ещё не видел упоминания x-bz-info-src_last_modified_millis, но оно есть в официальном руководстве, поэтому я добавил его тоже. В любом случае, это не повредит.
Есть ещё одно правило, которое тоже очень важно.
Оптимизируйте эффективность кэширования. В Cloudflare вы можете настроить правило для заголовка ответа, чтобы объединить значение ETag с заголовками ответа, возвращаемыми Backblaze.
concat(http.response.headers[x-bz-content-sha1][0], http.response.headers[x-bz-info-src_last_modified_millis][0], http.response.headers[x-bz-file-id][0])
После настройки вернитесь и проверьте заголовки ответа изображения. Все заголовки, начинающиеся с "x-bz", исчезнут, и вы увидите значение ETag.
Чисто и аккуратно.
Настройте правила кэширования
Добавьте правило для страницы в Cloudflare, введите разрешенное вами доменное имя плюс /* в URL, выберите уровень кэширования "Кэшировать все" и установите время жизни кэша на границе сети на один месяц.
Нам также необходимо настроить Backblaze. В настройках корзины добавьте строку с информацией о корзине:
{"cache-control":"max-age=720000"}Вы можете отрегулировать это время по мере необходимости; единица измерения — секунды. 720 000 секунд — это примерно 8 дней, чего должно быть достаточно.

Теперь, когда вы снова получите доступ к изображению, в заголовке ответа вы увидите следующее:
cache-control: max-age=720000
cf-cache-status: HIT
Вы видели сообщение "HIT"? Это значит, что кэш работает.
Вам не нужно каждый раз запрашивать ресурсы у Backblaze; CDN передает их вам напрямую, что быстро и экономит бесплатную квоту Backblaze.
Кстати, хотя Backblaze предлагает бесплатный ежедневный лимит, его, честно говоря, немного. 10 ГБ хранилища и 1 ГБ трафика для скачивания в день более чем достаточно, если вы просто загружаете изображения для блога, но если вы загружаете видео или большие файлы, рекомендуется активно использовать кэширование Cloudflare и избегать прямого подключения к исходному серверу.
В сочетании с клиентом PicGo
Выбор инструмента визуализации на стороне клиента остается за вами; существуют и другие варианты, например, ipic. В этом разделе основное внимание уделяется PicGo.
Просто найдите PicGo на GitHub, перейдите на страницу релизов и скачайте соответствующую версию.
После установки вам потребуется установить плагин S3, поскольку Backblaze B2 совместим с API S3.

Затем перейдите в Backblaze и создайте ключ приложения. На странице «Ключи приложений» нажмите «Добавить ключ приложения» и выберите права на чтение и запись.


Получив идентификатор ключа (Key ID) и ключ приложения (Application Key), введите их в плагин S3 для PicGo.
Здесь есть один нюанс, которого следует остерегаться.
Во многих онлайн-руководствах используется формат s3.us-west-xxx.backblazeb2.com для конечной точки, но если вы, как и я, используете собственный домен, связанный с Cloudflare, вам нужно ввести свой собственный домен. Введите https://oss.xxx.com в поле узла, а затем введите имя корзины, которую вы только что создали для этой корзины.


Сохраните файл после завершения сопоставления, а затем загрузите тестовое изображение.
Если его можно загрузить и получить к нему доступ через собственный домен, то это хорошо.
Просмотреть использование
Чтобы проверить использование Backblaze B2, вы можете сделать это на странице «Мой аккаунт» в административной панели Backblaze. Ежедневное использование хранилища, количество загрузок и запросов B2 отображаются в удобном для вас виде, что позволяет легко отслеживать, не превысили ли вы лимит.

На самом деле, настройка всей этой системы не была особенно сложной, но и не легкой; мы столкнулись с несколькими трудностями. Самым неприятным моментом были детали; упущение даже одной из них могло привести к недоступности, медленной загрузке или утечке информации.
Главный вывод, который я сделал после настройки, заключается в том, что это решение идеально подходит для владельцев личных веб-сайтов или небольших блогов. Оно недорогое, быстрое, и после настройки вам практически ничего не нужно делать — это разовое решение на всю жизнь.
Более того, благодаря интеграции Backblaze с Cloudflare, посетители видят ваш собственный домен, заголовки ответов чистые, а также используется CDN-ускорение, что делает работу с сервисом такой же качественной, как и с платными сервисами хостинга изображений.
Честно говоря, в наше время, когда всё оплачивается по факту использования, найти практически бесплатный тариф, подобный этому, — это просто замечательно.
В заключение хочу сказать, что если у вас тоже возникают проблемы с размещением изображений, надеюсь, эта статья сэкономит вам полдня проб и ошибок.
Раз уж вы дочитали до этого места, если вам это показалось полезным, пожалуйста, поставьте лайк и поделитесь этим постом. Если вы хотите получать обновления первыми, вы также можете подписаться на меня! ⭐
Спасибо за прочтение моей статьи. До встречи в следующий раз.
Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ Статья "Привязка пользовательского домена Cloudflare к Backblaze B2 (достижение 100% бесплатного трафика)", размещенная здесь, может быть вам полезна.
Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-34303.html
