← Cloudflare R2 / r2 / buckets
Local uploads
Вы можете включить Local Uploads для своего бакета, чтобы повысить производительность запросов на загрузку, когда клиенты передают данные из региона, отличного от региона вашего бакета. Local Uploads записывает данные объекта в ближайшее расположение, а затем асинхронно копирует их в ваш бакет. Данные становятся доступны немедленно и остаются строго согласованными.
Как это работает
В следующих разделах описывается, как R2 обрабатывает запросы на загрузку при включённой и отключённой функции Local Uploads.
Без Local Uploads
Когда клиент загружает объект в ваш бакет R2, данные объекта должны пройти путь от клиента до инфраструктуры хранения бакета. Из-за этого может увеличиваться задержка и снижаться надёжность, если клиент находится в другом регионе, чем бакет. См. Как работает R2 для получения подробностей.
С Local Uploads
Когда вы отправляете запрос на загрузку (например, PutObject и UploadPart) в бакет с включённой функцией Local Uploads обрабатываются два случая:
- Клиент и бакет находятся в одном регионе: R2 использует обычный процесс загрузки, при котором данные объекта передаются от клиента в инфраструктуру хранения вашего бакета.
- Клиент и бакет находятся в разных регионах: Данные объекта записываются в хранилище рядом с клиентом, а затем асинхронно реплицируются в ваш бакет. Объект сразу становится доступен и остаётся надёжно сохранённым на протяжении всего процесса.
Когда использовать Local Uploads
Local uploads предназначены для нагрузок, при которых много загрузок поступает из географических регионов, отличных от региона расположения вашего бакета. Эта функция особенно полезна, если:
- Ваши пользователи распределены по всему миру
- Производительность и надёжность загрузки критически важны для вашего приложения
- Вы хотите оптимизировать производительность записи, не меняя основное расположение бакета
Чтобы понять географическое распределение источников ваших запросов на чтение и запись:
-
Войдите в панель управления Cloudflare и перейдите в раздел R2 Overview.
Перейдите в Обзор ↗ -
Выберите свой бакет.
-
Выберите Метрики и просмотрите Распределение запросов диаграмма.
Особенности задержки чтения
Если функция Local Uploads включена, загруженные данные могут временно находиться ближе к клиенту, пока не завершится репликация.
Если вашей нагрузке требуется немедленное чтение сразу после записи, учитывайте, откуда поступают запросы на чтение. Чтение из региона, где выполнялась загрузка, будет быстрым, а чтение из региона, близкого к региону бакета, может столкнуться с межрегиональной задержкой до завершения репликации.
Ограничение юрисдикции
Local uploads не поддерживаются для бакетов с юрисдикционные ограничения, поскольку для этого требуется временно направлять данные через локации за пределами региона бакета.
Включение локальных загрузок
При включении Local Uploads уже начатые загрузки завершатся как обычно, без прерывания трафика.
-
Войдите в панель управления Cloudflare и перейдите в раздел R2 Overview.
Перейдите в Обзор ↗ -
Выберите свой бакет.
-
Выберите Настройки.
-
В разделе Local Uploads, выберите Включить.
Выполните следующую команду:
npx wrangler r2 bucket local-uploads enable <BUCKET_NAME>Отключить локальные загрузки
Вы можете отключить Local Uploads в любой момент. Уже отправленные запросы с использованием Local Uploads завершат репликацию без прерывания трафика.
-
Войдите в панель управления Cloudflare и перейдите в раздел R2 Overview.
Перейдите в Обзор ↗ -
Выберите свой бакет.
-
Выберите Настройки.
-
В разделе Local Uploads, выберите Отключить.
Выполните следующую команду:
npx wrangler r2 bucket local-uploads disable <BUCKET_NAME>Цены
Существует без дополнительных затрат чтобы включить локальную загрузку. Запросы на загрузку, отправленные при включённой этой функции, облагаются стандартной Стоимость операции класса A, так же как и запросы на загрузку без Local Uploads.