← Cloudflare R2 / r2 / platform
Примечания к выпуску
2026-04-27
- Теперь вы можете очистить бакет или удалить папки прямо из R2 dashboard, без написания скриптов и настройки правил жизненного цикла.
2025-09-23
- Исправлена ошибка, из-за которой можно было попытаться удалить объекты, даже если к ним в dashboard было применено правило блокировки бакета. Ранее такие объекты на мгновение исчезали из таблицы, но появлялись снова после обновления страницы. Теперь действие удаления для заблокированных объектов в dashboard недоступно.
2025-09-22
- Мы обновили панель управления R2, сделав её более понятной, чтобы вам было проще находить нужное и выполнять действия. Инструкции по использованию R2 с различными API-интерфейсами доступны в боковой панели, а документация внизу страницы.
2025-07-03
- Теперь алгоритм контрольной суммы CRC-64/NVME поддерживается как для обычных, так и для составных объектов. Это также добавляет поддержку
FULL_OBJECTТип контрольной суммы для составных загрузок. См. раздел «Совместимость типов контрольных сумм» здесь.
2024-12-03
- Server-side Encryption with Customer-Provided Keys теперь доступен всем пользователям через Workers API и API, совместимый с S3.
2024-11-21
- Теперь Sippy можно включить для бакетов в юрисдикции (например, EU, FedRAMP).
- Исправлена проблема в Sippy, из-за которой запросы GET/HEAD к объектам с определёнными специальными символами приводили к ответам с ошибкой.
2024-11-20
- Океания (OC) теперь доступна как регион R2.
- Максимальное количество бакетов на аккаунт по умолчанию теперь составляет 1 миллион. Если вам нужно больше 1 миллиона бакетов, обратитесь в Служба поддержки Cloudflare.
- Публичные бакеты, доступные через собственный домен, теперь поддерживают Smart Tiered Cache.
2024-11-19
- R2
bucket lifecycleкоманда добавлена в Wrangler. Поддерживает просмотр списка, добавление и удаление правил жизненного цикла объектов.
2024-11-14
- R2
bucket infoкоманда добавлена в Wrangler. Отображает расположение бакета и основные метрики.
2024-11-08
- R2
bucket dev-urlкоманда добавлена в Wrangler. Поддерживает включение, отключение и получение статуса URL публичного доступа r2.dev.
2024-11-06
- R2
bucket domainкоманда добавлена в Wrangler. Поддерживает просмотр списка, добавление, удаление и обновление Пользовательские домены бакета R2.
2024-11-01
- Добавить
minTLSк ответу список пользовательских доменов конечная точка.
2024-10-28
- Добавить получить пользовательский домен конечная точка.
2024-10-21
- Теперь уведомления о событиях можно настроить для бакетов R2 в юрисдикции (например, EU, FedRAMP).
2024-09-26
- Уведомления о событиях для R2 теперь общедоступен. Уведомления о событиях теперь поддерживают более высокую пропускную способность (до 5,000 сообщений в секунду на очередь), их можно настроить в панели управления и Wrangler, а также добавлена поддержка удалений по правилам жизненного цикла.
2024-09-18
- Добавление возможности задавать и обновить минимальную версию TLS для пользовательских доменов bucket R2.
2024-08-26
- Добавлена поддержка настройки пользовательских доменов бакета R2 через API.
2024-08-21
- Sippy теперь общедоступен. Метрики текущих миграций теперь можно найти в панели управления или через GraphQL analytics API.
2024-07-08
- Добавлен журнал миграции для Super Slurper к сводке миграции в панели управления.
2024-06-12
- Super Slurper теперь поддерживает миграцию объектов размером до 1TB.
2024-06-07
- Исправлена проблема, из-за которой Sippy не мог копировать объекты из бакетов S3 с настроенным SSE.
2024-06-06
- Теперь R2 будет игнорировать
x-purposeпараметр запроса.
2024-05-29
- Добавлена поддержка Infrequent Access класс хранения (бета).
2024-05-24
- Добавлено создать временные токены доступа конечная точка.
2024-04-03
- Уведомления о событиях для R2 теперь доступен в статусе открытой бета-версии.
- Теперь Super Slurper поддерживает миграцию из Google Cloud Storage.
2024-02-20
- Когда
OPTIONSзапрос к публичной точке входа не включаетoriginзаголовок,HTTP 400вместоHTTP 401возвращается.
2024-02-06
- Форма ответа
GET /buckets/:bucket/sippyизменился. -
/buckets/:bucket/sippy/validateконечная точка предоставляется через APIGW для проверки конфигурации Sippy. - Форма объекта конфигурации при изменении настроек Sippy изменилась.
2024-02-02
- Обновлена GetBucket конечная точка: теперь выполняет получение по
bucket_nameвместоbucket_id.
2024-01-30
- Исправлена ошибка, из-за которой API принимал пустые строки в
AllowedHeadersсвойствоPutBucketCorsдействия.
2024-01-26
- Части теперь автоматически сортируются по возрастанию независимо от порядка ввода во время
CompleteMultipartUpload.
2024-01-11
- Sippy доступен в бета версии для Google Cloud Storage (GCS).
2023-12-11
-
x-idпараметр запроса дляS3 ListBucketsдействие теперь игнорируется. -
x-idпараметр запроса теперь игнорируется для всех действий S3.
2023-10-23
PutBucketCorsтеперь принимает только допустимые источники.
2023-09-01
- Исправлена проблема с
ListBucketsгдеname_containsпараметр также выполнял бы поиск по названию юрисдикции.
2023-08-23
- Config Audit Logs: общедоступно.
2023-08-11
- Теперь пользователи могут выполнять условные операции публикации составной загрузки. Если при публикации загрузки условие не выполняется, загрузка становится недоступной и считается прерванной.
2023-07-05
- Улучшена производительность операций чтения диапазонов (ranged reads) в очень больших файлах. Ранее чтение диапазонов ближе к концу очень больших файлов было заметно медленнее, чем чтение диапазонов в файлах меньшего размера. Теперь производительность должна оставаться стабильно высокой независимо от размера файла.
2023-06-21
- ETags составной загрузки теперь являются MD5- хешами.
2023-06-16
- Исправлена ошибка, из-за которой при вызове GetBucket для несуществующего бакета возвращала 500 вместо 404.
- Улучшена совместимость с S3 для ListObjectsV1: теперь nextmarker устанавливается только когда truncated равен true.
- Привязки Worker для R2 теперь поддерживают разбор условных заголовков с несколькими etag. Такие etag теперь могут быть строгими, слабыми или иметь значение подстановочного знака. Ранее привязки принимали заголовки только с одним строгим etag.
- S3 putObject теперь поддерживает контрольные суммы sha256 и sha1. Привязки R2 Worker уже поддерживали их ранее.
- CopyObject в S3-совместимом API теперь поддерживает специфичные для Cloudflare заголовки, которые позволяют сделать операцию копирования условной в зависимости от состояния целевого объекта.
2023-04-01
- GetBucket теперь доступен для использования через Cloudflare API.
- Подсказки о местоположении теперь можно задать при создании бакета как через S3 API, так и через панель управления.
2023-03-16
- ListParts API реализован и доступен для использования.
- HTTP2 теперь по умолчанию включён для новых пользовательских доменов, привязанных к бакетам R2.
- Жизненный цикл объектов теперь доступен для использования.
- Исправление ошибки: запросы к публичным бакетам теперь будут возвращать
Content-Encodingзаголовок для файлов gzip, когдаAccept-Encoding: gzipиспользуется.
2023-01-27
- Токены аутентификации R2, созданные на странице токенов R2, теперь по умолчанию привязаны только к одной учётной записи.
2022-12-07
- Исправлены предварительные (preflight) запросы CORS для S3 API, что позволяет использовать S3 SDK в браузере.
- Передача заголовка range в
getоперация в R2 bindings API теперь должна работать как ожидается.
2022-11-30
- Запросы с заголовком
x-amz-acl: public-readбольше не отклоняются. - Исправлены проблемы с правилами CORS с использованием подстановочных знаков и подписанными URL-адресами.
- Исправлена проблема, из-за которой
ListObjectsприводил к таймауту при разделённом листинге ключей, нормализованных по Unicode. - S3 API:
PutBucketCorsтеперь отклоняет запросы с неизвестными ключами в теле XML. - Подписание дополнительных заголовков больше не приводит к сбоям в предварительных запросах CORS для presigned URL.
2022-11-21
- Исправлена ошибка в
ListObjectsгдеstartAfterпропускал бы объекты, чьи ключи содержат цифры сразу послеstartAfterпрефикс. - Добавлены привязки Worker для составной (multipart) загрузки.
2022-11-17
- Безусловно возвращает HTTP 206 для запросов с указанием диапазона, чтобы соответствовать поведению других S3-совместимых реализаций.
- Исправлена ошибка CORS, из-за которой
AllowedHeadersв конфигурации CORS обрабатывались с учётом регистра.
2022-11-08
- Копирование составных объектов через
CopyObjectснова включено. UploadPartCopyснова включено.
2022-10-28
- Ожидается, что размеры частей составной загрузки всегда одинаковы, но теперь эта проверка выполняется при завершении загрузки, а не при загрузке каждой части.
- Исправлена проблема с производительностью, из-за которой параллельные загрузки частей multipart-загрузки отклонялись.
2022-10-26
- Исправлено чтение по диапазонам для multipart-объектов с размером частей, не выровненным по 64 КиБ.
2022-10-19
HeadBucketтеперь устанавливаетx-amz-bucket-regionкautoв ответе.
2022-10-06
- Временно отключено
UploadPartCopyпока мы разбираемся с проблемой.
2022-09-29
- Исправлена проблема с CORS, из-за которой
Access-Control-Allow-Headersне устанавливалось для предварительных запросов (preflight).
2022-09-28
- Исправлена ошибка, из-за которой конфигурация CORS не применялась к конечной точке S3.
- Больше не отображать
Access-Control-Expose-Headersзаголовок ответа, еслиExposeHeaderне определено. - Публичные бакеты больше не будут возвращать
Content-Rangeзаголовок ответа, если ответ не является частичным. - Исправлено отображение CORS для S3
HeadObjectоперацию. - Исправлена ошибка, из-за которой отсутствие подходящей конфигурации CORS могло приводить к
403ответ. - Временно отключено копирование объектов, созданных с помощью составной загрузки.
- Исправлена ошибка в привязках Workers, из-за которой при некорректно сформированных ranged
.getзапросы.
2022-09-27
- Ответы на предварительные запросы CORS (preflight) и добавление заголовков CORS для остальных ответов теперь реализованы для S3 и публичных бакетов. На данный момент настроить CORS можно только через S3 API.
- Исправление усечения списка в привязках, чтобы листинг ключей с пользовательскими метаданными, содержащими
"или когда некоторые ключи или значения содержат определенные многобайтовые значения UTF-8. - S3
GetObjectоперация теперь возвращает толькоContent-Rangeв ответ на запрос с указанием диапазона.
2022-09-19
- R2
put()параметрам привязки теперь можно передатьonlyIfполе, аналогичноget(), который выполняет условную загрузку. - R2
delete()привязка теперь поддерживает удаление нескольких ключей одновременно. - R2
put()привязка теперь поддерживает указанные пользователем контрольные суммы SHA-1, SHA-256, SHA-384, SHA-512 в опциях. - Теперь контрольные суммы объектов, заданные пользователем, доступны в R2
get()иhead()привязок. MD5 включается по умолчанию для объектов, загруженных не составной загрузкой.
2022-09-06
- S3
CopyObjectоперация теперь включаетx-amz-version-idиx-amz-copy-source-version-idв заголовках ответа для согласованности с другими методами. -
ETagдля multipart-файлов, загруженных вскоре после Open Beta, теперь включают количество частей в качестве суффикса.
2022-08-17
- S3
DeleteObjectsоперация больше не удаляет пробелы вокруг ключей перед удалением. Из-за этого файлы с пробелами в начале или конце имени невозможно было удалить. Кроме того, если существовал объект с ключом без этих пробелов, удалялся именно он. Операция S3DeleteObjectоперацию это не затронуло. - Исправлена поддержка подписанных URL-адресов для S3
ListBucketsиListObjectsоперации.
2022-08-06
- Загрузки будут автоматически определять
Content-Typeна основе тела файла, если оно явно не задано вPutObjectзапрос. Эта функциональность будет добавлена в операции multipart в будущем.
2022-07-30
- Исправлена корректная работа условных операторов S3 при указании
LastModifiedдате последней загрузки, исправления для bindings появятся в следующем релизе. If-Match/If-None-Matchзаголовки теперь поддерживают массивы ETags, слабых ETags и подстановочных знаков (*) согласно стандарту HTTP и недокументированному поведению AWS S3.
2022-07-21
- Добавлена тестовая реализация следующей операции, которая имитирует
ответ, возвращаемый обычным бакетом AWS S3 сразу после его создания:
GetBucketAcl.
2022-07-20
Добавлены тестовые реализации следующих операций, которые имитируют ответ, возвращаемый обычным бакетом AWS S3 сразу после его создания:
GetBucketVersioningGetBucketLifecycleConfigurationGetBucketReplicationGetBucketTaggingGetObjectLockConfiguration
2022-07-19
- Исправлена проблема совместимости с S3 в ответах об ошибках для MinIO .NET SDK и других инструментов, которые не ожидают
xmlnsатрибут namespace на верхнем уровнеErrorтег. - Токены продолжения списка, полученные до 2022-07-01, больше не принимаются, и их необходимо получить заново через новый
listоперацию. -
list()привязка теперь корректно возвращает меньший лимит, если иначе было бы возвращено слишком много данных (ранее возвращалаInternal Error).
2022-07-14
- Улучшения обработки ошибок 500: теперь мы преобразуем ошибки, поэтому то, что раньше было проблемами параллелизма для некоторых операций, теперь должно быть
TooMuchConcurrencyвместоInternalError. Кроме того, благодаря внутренним улучшениям мы снизили частоту ошибок 500. ListMultipartUploadкорректно кодирует возвращённыйKeyеслиencoding-typeуказан.
2022-07-13
- XML-документы S3, отправленные в R2 и содержащие объявление XML, не отклоняются с
400 Bad Request/MalformedXML. - Незначительное исправление совместимости XML с S3, затрагивающее только Arq Backup для Windows (не версию для Mac). Теперь ответ содержит префикс тега объявления XML, а атрибут xmlns присутствует во всех тегах верхнего уровня ответа.
- Бета
ListMultipartUploadsподдержка.
2022-07-06
- Добавлена поддержка
r2_list_honor_includeфлаг совместимости появится в одном из следующих выпусков среды выполнения (поведение по умолчанию начиная с даты совместимости 2022-07-14). Без этого флага или даты совместимости list продолжит неявно работать какinclude: ['httpMetadata', 'customMetadata']независимо от того, что вы укажете. cf-create-bucket-if-missingможно задать дляPutObject/CreateMultipartUploadзапрос, чтобы неявно создать бакет, если он не существует.- Исправлена совместимость с S3 для XML, не соответствующего спецификации клиента MinIO, при публикации multipart-загрузок. Любые начальные и конечные кавычки в
CompleteMultipartUploadтеперь необязательны и игнорируются, поскольку именно так, судя по всему, ведёт себя нестандартная реализация AWS.
2022-07-01
- Неподдерживаемые параметры поиска для
ListObjects/ListObjectsV2теперь отклоняются с501 Not Implemented. - Исправления для листинга:
- Исправлено поведение листинга, когда количество файлов в папке превышает лимит (ранее для такой большой папки CommonPrefix отображался N раз, где N = количество дочерних элементов в CommonPrefix, делённое на лимит).
- Исправлен редкий случай, когда при листинге объекты, имеющие общее базовое имя с "папкой", могли пропускаться.
- Исправлен листинг для файлов с общим префиксом.
DeleteObjectsтеперь может обрабатывать до 1000 объектов за раз.- S3
CreateBucketзапрос может указыватьx-amz-bucket-object-lock-enabledсо значениемfalseи не получать отказ в запросе сNotImplementedошибку. Значениеtrueпо-прежнему будут отклоняться, так как R2 пока не поддерживает блокировку объектов.
2022-06-17
- Исправлена регрессия, затрагивавшая некоторых клиентов при использовании пустого разделителя.
- Добавлена поддержка предварительно подписанных URL-адресов S3.
2022-06-16
- Исправлена регрессия в S3 API
UploadPartоперация, гдеTooMuchConcurrency&NoSuchUploadошибки возвращались какNoSuchBucket.
2022-06-13
- Исправлена ошибка в S3 API
ListObjectsV2операция не возвращала пустые папки в качестве общих префиксов при использовании разделителей. - S3 API
ListObjectsV2KeyCountпараметр теперь корректно возвращает сумму ключей и общих префиксов, а не только ключи. - Недопустимые курсоры для операций получения списка больше не приводят к ошибке
InternalErrorи теперь возвращают соответствующее сообщение об ошибке.
2022-06-10
-
ContinuationTokenполе теперь корректно возвращается в ответе, если оно было указано в S3 APIListObjectsV2запрос. - Исправлена ошибка, из-за которой S3 API
AbortMultipartUploadоперация вызывала ошибку при многократном вызове.
2022-05-27
- Исправлена ошибка в S3 API, связанная с
PutObjectили.put()привязка могла завершиться ошибкой, но при этом загрузка в бакет отображалась как успешная. - Если условные заголовки передаются в S3 API
UploadObjectилиCreateMultipartUploadоперации и объект существует, возвращается412 Precondition Failedкод состояния будет возвращён, если эти проверки не пройдены.
2022-05-20
- Исправлена ошибка, возникавшая при
Accept-Encodingиспользовалось вSignedHeadersпри отправке запросов к S3 API приводит кSignatureDoesNotMatchответ.
2022-05-17
- Исправлена ошибка, из-за которой запросы к S3 API некорректно обрабатывали незакодированные параметры, используемые для подписи авторизации.
- Исправлена ошибка, из-за которой в запросах к S3 API ключи, похожие на числа, распознавались как числа, а не как строки.
2022-05-16
- Добавление поддержки S3 пути в стиле virtual-hosted, например
<BUCKET>.<ACCOUNT_ID>.r2.cloudflarestorage.comвместо маршрутизации на основе пути (<ACCOUNT_ID>.r2.cloudflarestorage.com/<BUCKET>). - Реализовано
GetBucketLocationдля совместимости с внешними инструментами, это всегда будет возвращатьLocationConstraintauto.
2022-05-06
- S3 API
GetObjectдиапазоны теперь включают границы (bytes=0-0корректно вернёт первый байт). - S3 API
GetObjectчастичные чтения возвращают правильный206 Partial Contentкод ответа. - Копирование из несуществующего ключа (или из несуществующего бакета) в другой бакет теперь возвращает корректный
NoSuchKey/NoSuchBucketответ. - Теперь S3 API возвращает корректный
Content-Type: application/xmlзаголовок ответа на соответствующих конечных точках. - Теперь составные загрузки имеют
-Nсуффикс к etag, обозначающий число частей, с которыми был опубликован файл. UploadPartиUploadPartCopyтеперь возвращают корректные сообщения об ошибках, напримерTooMuchConcurrencyилиNoSuchUpload, вместо 'internal error'.UploadPartтеперь можно отправить часть нулевой длины.
2022-05-05
- При использовании S3 API пустая строка и
us-east-1теперь будет служить псевдонимом дляautoрегион для совместимости с внешними инструментами. GetBucketEncryption,PutBucketEncryptionиDeleteBucketEncrypotionтеперь поддерживаются (единственное поддерживаемое на данный момент значение:AES256).- Неподдерживаемые операции явно отклоняются как нереализованные, вместо неявного преобразования в
ListObjectsV2/PutBucket/DeleteBucketсоответственно. - S3 API
CompleteMultipartUploadsзапросы теперь корректно экранируются.
2022-05-03
- Курсоры пагинации больше не возвращаются, если ключи в бакете совпадают с
MaxKeysаргумент. - S3 API
ListBucketsоперация теперь принимаетcf-max-keys,cf-start-afterиcf-continuation-tokenзаголовки ведут себя так же, как соответствующие параметры URL. - S3 API
ListBucketsиListObjectsконечные точки теперь позволяютper_pageравным 0. - S3 API
CopyObjectпараметр source теперь требует начальный слэш. - S3 API
CopyObjectоперация теперь возвращаетNoSuchBucketошибку при копировании в несуществующий bucket вместо внутренней ошибки. - Установите обязательное требование для
autoв подписи SigV4 иCreateBucketLocationConstraintпараметр. - S3 API
CreateBucketоперация теперь возвращает правильныйlocationзаголовок ответа.
2022-04-14
- Теперь S3 API поддерживает подписанные полезные нагрузки без разбиения на части.
- Исправлено
.put()для Workers R2 bindings. - Исправлена регрессия, из-за которой имена ключей некорректно декодировались при использовании S3 API.
- Исправлена ошибка, из-за которой удаление объекта, а затем другого объекта, являющегося префиксом первого, могло приводить к ошибкам.
- S3 API
DeleteObjectsоперация больше не возвращает ошибку в некоторых случаях, даже если объект был удалён. - Исправлена ошибка, из-за которой
startAfterиcontinuationTokenне работали в операциях получения списка. - S3 API
ListObjectsоперация теперь корректно отображаетPrefix,Delimiter,StartAfterиMaxKeysв ответе. - S3 API
ListObjectsV2теперь корректно учитываетencoding-typeпараметр. - S3 API
PutObjectоперация теперь работает сPOSTзапросов наs3cmdсовместимость.
2022-04-04
- S3 API
DeleteObjectsзапрос теперь корректно возвращаетMalformedXMLошибку вместоInternalErrorпри передаче более 128 ключей.