INTEGRITY Документация

Как работает R2

Cloudflare R2 представляет собой S3-совместимый сервис объектного хранения без платы за исходящий трафик, построенный на глобальной сети Cloudflare. Он строго согласованный и разработан для высокой долговечность данных.

R2 отлично подходит для хранения и раздачи неструктурированных данных, к которым часто обращаются через интернет, без платы за исходящий трафик. Это хороший вариант для таких задач, как раздача веб-ресурсов, обучение AI-моделей и управление пользовательским контентом.

Архитектура

Архитектура R2 состоит из нескольких компонентов:

Архитектура R2

R2 поддерживает несколько клиентских интерфейсов, включая Cloudflare Workers Binding, S3-совместимый API, а также REST API который используется Cloudflare Dashboard и Wrangler CLI. Все запросы направляются через R2 Gateway, который взаимодействует со службой метаданных и распределённой инфраструктурой хранения для получения данных объекта.

Запись данных в R2

Когда к R2 поступает запрос на запись (например, загрузка объекта), происходит следующая последовательность действий:

  1. Обработка запросов: Запрос принимается R2 Gateway на edge-узле, ближайшем к пользователю, где он проходит аутентификацию.

  2. Шифрование и маршрутизация: Gateway обращается к Metadata Service, чтобы получить ключ шифрования и определяет, в какой кластер хранения записать зашифрованные данные в расположение настроено для бакета.

  3. Запись в хранилище: Зашифрованные данные записываются и хранятся в распределённой инфраструктуре хранения, а также реплицируются в пределах региона (например, ENAM) для долговечность.

  4. Фиксация метаданных: Наконец, Metadata Service фиксирует метаданные объекта, делая их видимыми при последующих чтениях. Только после этой фиксации HTTP 200 успешный ответ, отправленный клиенту, что предотвращает неподтверждённые записи.

Запись данных в R2

Чтение данных из R2

Когда к R2 поступает запрос на чтение (например, получение объекта), происходит следующая последовательность действий:

  1. Обработка запросов: Запрос принимается R2 Gateway на edge-узле, ближайшем к пользователю, где он проходит аутентификацию.

  2. Поиск метаданных: Gateway запрашивает у Metadata Service метаданные объекта.

  3. Чтение объекта: Gateway пытается получить зашифровано объект из многоуровневого кеша чтения. Если он недоступен, объект извлекается из одного из распределённых дата-центров хранения в регионе, где находятся данные объекта.

  4. Передача клиенту: Объект расшифровывается и передаётся пользователю.

Чтение данных в R2

Производительность

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

Чтобы оптимизировать производительность загрузки для межрегиональных запросов, включите Local Uploads для вашего бакета.

Чтобы оптимизировать производительность чтения, включите Кеш Cloudflare при использовании пользовательский домен. Если кеширование включено, запросы на чтение могут обходить R2 Gateway и обслуживаться напрямую из edge-кеша Cloudflare, что снижает задержку. Обратите внимание, что закешированные данные могут не сразу отражать последнюю версию.

Чтение данных в R2 с помощью Cloudflare Cache

Подробнее

Согласованность

Узнайте больше о модели согласованности R2.

Долговечность

Узнайте больше о гарантии надёжности R2.

Расположение данных

Узнайте, как R2 определяет место хранения данных, и ознакомьтесь с подробностями об ограничениях юрисдикции.

Безопасность данных

Узнайте больше о свойствах безопасности данных в R2.