본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

릴리스 노트 (Release notes)

원문 보기 위키 갱신

Cloudflare R2 객체 스토리지의 최신 변경 사항과 업데이트를 정리했어요.

출처: 문서

본문

RSS 구독

2026-04-27

  • 이제 스크립트를 작성하거나 수명주기(lifecycle) 규칙을 구성하지 않고도 R2 대시보드에서 직접 버킷 비우기 또는 폴더 삭제를 할 수 있어요.

2025-09-23

  • 대시보드에서 버킷 잠금(bucket lock) 규칙이 적용된 객체도 삭제를 시도할 수 있던 버그를 수정했어요. 이전에는 삭제 직후 표에서 잠시 사라졌다가 페이지를 새로고침하면 다시 나타났죠. 이제 대시보드에서 잠긴 객체의 삭제 동작이 비활성화됩니다.

2025-09-22

  • 필요한 것을 더 쉽게 찾고 조치를 취할 수 있도록 R2 대시보드를 더 깔끔한 모습으로 업데이트했어요. 다양한 API 인터페이스로 R2를 사용하는 방법에 대한 안내는 사이드 패널에서, 문서는 하단에서 쉽게 접근할 수 있어요.

2025-07-03

  • CRC-64/NVME Checksum 알고리즘이 이제 단일 및 멀티파트 객체 모두에서 지원돼요. 이에 따라 멀티파트 업로드에서 FULL_OBJECT Checksum Type도 지원됩니다. Checksum Type 호환성은 여기에서 확인할 수 있어요.

2024-12-03

2024-11-21

  • Sippy를 이제 관할권(jurisdictions)이 있는 버킷(예: EU, FedRAMP)에서도 활성화할 수 있어요.
  • 특수 문자가 포함된 객체에 대한 GET/HEAD 요청이 오류 응답을 반환하던 Sippy 문제를 수정했어요.

2024-11-20

  • 오세아니아(OC)가 이제 R2 지역(region)으로 제공됩니다.
  • 계정당 기본 최대 버킷 수가 이제 100만 개예요. 100만 개가 넘는 버킷이 필요하면 Cloudflare Support에 문의하세요.
  • 커스텀 도메인을 통해 접근하는 공개 버킷이 이제 Smart Tiered Cache를 지원해요.

2024-11-19

  • Wrangler에 R2 bucket lifecycle 명령이 추가됐어요. 객체 수명주기 규칙을 나열·추가·제거할 수 있어요.

2024-11-14

  • Wrangler에 R2 bucket info 명령이 추가됐어요. 버킷의 위치와 주요 메트릭을 표시해요.

2024-11-08

2024-11-06

2024-11-01

2024-10-28

2024-10-21

  • 관할권(jurisdictions)이 있는 R2 버킷(예: EU, FedRAMP)에서 이벤트 알림을 구성할 수 있게 됐어요.

2024-09-26

  • R2용 이벤트 알림이 이제 일반 공개(GA)됐어요. 이벤트 알림은 더 높은 처리량(Queue당 초당 최대 5,000개 메시지)을 지원하고, 대시보드와 Wrangler에서 구성할 수 있으며, 수명주기 삭제를 지원해요.

2024-09-18

  • R2 버킷 커스텀 도메인의 최소 TLS 버전 설정·업데이트 기능을 추가했어요.

2024-08-26

  • API를 통한 R2 버킷 커스텀 도메인 구성 지원을 추가했어요.

2024-08-21

  • Sippy가 이제 일반 공개(GA)됐어요. 진행 중인 마이그레이션의 메트릭은 이제 대시보드 또는 GraphQL 분석 API에서 확인할 수 있어요.

2024-07-08

  • 대시보드의 마이그레이션 요약에 Super Slurper 마이그레이션 로그를 추가했어요.

2024-06-12

  • Super Slurper가 이제 최대 1TB 크기의 객체 마이그레이션을 지원해요.

2024-06-07

  • Sippy가 SSE가 설정된 S3 버킷의 객체를 복사하지 못하던 문제를 수정했어요.

2024-06-06

  • R2가 x-purpose 요청 파라미터를 무시하게 됐어요.

2024-05-29

2024-05-24

2024-04-03

2024-02-20

  • 공개 엔트리포인트에 대한 OPTIONS 요청에 origin 헤더가 없을 때 HTTP 401 대신 HTTP 400을 반환하게 됐어요.

2024-02-06

  • GET /buckets/:bucket/sippy의 응답 형태가 변경됐어요.
  • Sippy 구성을 검증하는 /buckets/:bucket/sippy/validate 엔드포인트가 APIGW를 통해 노출돼요.
  • Sippy 구성을 수정할 때 구성 객체의 형태가 변경됐어요.

2024-02-02

  • GetBucket 엔드포인트를 업데이트했어요: 이제 bucket_id 대신 bucket_name으로 조회해요.

2024-01-30

  • API가 PutBucketCors 작업의 AllowedHeaders 속성에서 빈 문자열을 받아들이던 버그를 수정했어요.

2024-01-26

  • CompleteMultipartUpload 동안 파트가 입력 순서와 관계없이 이제 자동으로 오름차순 정렬돼요.

2024-01-11

  • Sippy가 Google Cloud Storage(GCS) 베타에 제공돼요.

2023-12-11

  • S3 ListBuckets 작업의 x-id 쿼리 파라미터가 이제 무시돼요.
  • 모든 S3 작업에서 x-id 쿼리 파라미터가 이제 무시돼요.

2023-10-23

  • PutBucketCors가 이제 유효한 origin만 허용해요.

2023-09-01

  • ListBuckets에서 name_contains 파라미터가 관할권 이름까지 검색하던 문제를 수정했어요.

2023-08-23

  • Config Audit Logs가 일반 공개(GA)됐어요.

2023-08-11

  • 사용자가 조건부 멀티파트 게시(conditional multipart publish) 작업을 완료할 수 있게 됐어요. 업로드를 게시할 때 조건이 실패하면 해당 업로드는 더 이상 사용할 수 없고 중단(aborted)된 것으로 처리돼요.

2023-07-05

  • 매우 큰 파일의 범위 읽기(ranged reads) 성능을 개선했어요. 이전에는 매우 큰 파일의 끝부분 근처 범위 읽기가 작은 파일보다 눈에 띄게 느렸죠. 이제 파일 크기와 관계없이 성능이 일관되게 좋아졌어요.

2023-06-21

2023-06-16

  • 존재하지 않는 버킷에 GetBucket을 호출하면 404 대신 500을 반환하던 버그를 수정했어요.
  • ListObjectsV1의 S3 호환성을 개선했어요. 이제 truncated가 true일 때만 nextmarker가 설정돼요.
  • R2 worker 바인딩이 이제 여러 etag를 포함하는 조건부 헤더를 파싱할 수 있어요. 이 etag들은 이제 강(strong), 약(weak) 또는 와일드카드일 수 있어요. 이전에는 바인딩이 단일 강 etag를 포함한 헤더만 허용했어요.
  • S3 putObject가 이제 sha256과 sha1 체크섬을 지원해요. 이 기능은 R2 worker 바인딩에서 이미 지원되고 있었죠.
  • S3 호환 API의 CopyObject가 이제 대상 객체의 상태에 따라 복사 작업을 조건부로 수행할 수 있는 Cloudflare 특정 헤더를 지원해요.

2023-04-01

  • GetBucket을 이제 Cloudflare API를 통해 사용할 수 있어요.
  • Location hints를 이제 S3 API와 대시보드 모두에서 버킷 생성 시 설정할 수 있어요.

2023-03-16

  • ListParts API가 구현되어 사용할 수 있어요.
  • R2 버킷에 연결된 새 커스텀 도메인에는 HTTP2가 기본적으로 활성화돼요.
  • 객체 수명주기(Object Lifecycles)를 사용할 수 있게 됐어요.
  • 버그 수정: 공개 버킷 요청이 Accept-Encoding: gzip 사용 시 gzip 파일에 대한 Content-Encoding 헤더를 이제 반환해요.

2023-01-27

  • R2 토큰 페이지에서 생성한 R2 인증 토큰이 이제 기본적으로 단일 계정으로 범위가 제한돼요.

2022-12-07

  • S3 API용 CORS 사전 검사(preflight) 요청을 수정해 브라우저에서 S3 SDK를 사용할 수 있게 됐어요.
  • R2 바인딩 API의 get 작업에 range 헤더를 전달하는 것이 이제 예상대로 동작해요.

2022-11-30

  • x-amz-acl: public-read 헤더가 있는 요청이 더 이상 거부되지 않아요.
  • 와일드카드 CORS 규칙과 사전 서명(presigned) URL 관련 문제를 수정했어요.
  • 유니코드 정규화 키의 구분자(delimited) 목록 중 ListObjects가 타임아웃되던 문제를 수정했어요.
  • S3 API의 PutBucketCors가 이제 XML 본문에 알 수 없는 키가 있으면 요청을 거부해요.
  • 추가 헤더 서명이 사전 서명 URL의 CORS 사전 검사 요청을 깨뜨리지 않게 됐어요.

2022-11-21

  • startAfter 접두사 바로 다음에 숫자가 있는 키를 가진 객체를 ListObjects의 startAfter가 건너뛰던 버그를 수정했어요.
  • 멀티파트 업로드용 worker 바인딩을 추가했어요.

2022-11-17

  • 다른 S3 호환 구현과 동작을 맞추기 위해 범위 요청에 대해 무조건 HTTP 206을 반환하게 됐어요.
  • CORS 구성의 AllowedHeaders가 대소문자를 구분해 처리되던 CORS 버그를 수정했어요.

2022-11-08

  • CopyObject를 통한 멀티파트 객체 복사가 다시 활성화됐어요.
  • UploadPartCopy가 다시 활성화됐어요.

2022-10-28

  • 멀티파트 업로드 파트 크기는 항상 동일해야 하는데, 이제 파트를 업로드할 때마다가 아니라 업로드를 완료할 때 이 요구사항이 적용돼요.
  • 동시 멀티파트 파트 업로드가 거부되던 성능 문제를 수정했어요.

2022-10-26

  • 파트 크기가 64KiB에 정렬되지 않은 멀티파트 객체의 범위 읽기를 수정했어요.

2022-10-19

  • HeadBucket가 이제 응답에서 x-amz-bucket-region을 auto로 설정해요.

2022-10-06

  • 문제를 조사하는 동안 UploadPartCopy를 일시적으로 비활성화했어요.

2022-09-29

  • 사전 검사 요청에 Access-Control-Allow-Headers가 설정되지 않던 CORS 문제를 수정했어요.

2022-09-28

  • CORS 구성이 S3 엔드포인트에 적용되지 않던 버그를 수정했어요.
  • ExposeHeader가 정의되지 않으면 Access-Control-Expose-Headers 응답 헤더를 더 이상 렌더링하지 않아요.
  • 공개 버킷은 응답이 부분적이지 않으면 더 이상 Content-Range 응답 헤더를 반환하지 않아요.
  • S3 HeadObject 작업의 CORS 렌더링을 수정했어요.
  • 일치하는 CORS 구성이 없을 때 403 응답이 나올 수 있던 버그를 수정했어요.
  • 멀티파트 업로드로 생성된 객체 복사를 일시적으로 비활성화했어요.
  • Workers 바인딩에서 잘못된 형식의 범위 .get 요청에 내부 오류가 반환되던 버그를 수정했어요.

2022-09-27

  • S3 및 공개 버킷에 대해 CORS 사전 검사 응답과 다른 응답에 대한 CORS 헤더 추가가 구현됐어요. 현재 CORS를 구성하는 유일한 방법은 S3 API를 통해서예요.
  • 커스텀 메타데이터에 "가 있거나 일부 키/값에 특정 멀티바이트 UTF-8 값이 포함된 키를 나열할 때 바인딩 목록 절사(truncation)가 더 정확하게 동작하도록 수정했어요.
  • S3 GetObject 작업은 이제 범위 요청에 대해서만 Content-Range를 반환해요.

2022-09-19

  • R2 put() 바인딩 옵션에 get()과 유사한 onlyIf 필드를 지정해 조건부 업로드를 수행할 수 있게 됐어요.
  • 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를 포함해요.
  • Open Beta 직후까지 업로드된 멀티파트 파일의 ETag가 이제 파트 수를 접미사로 포함해요.

2022-08-17

  • S3 DeleteObjects 작업이 삭제 전에 키 주변의 공백을 더 이상 자르지 않아요. 이전에는 앞/뒤에 공백이 있는 파일을 삭제할 수 없었죠. 또한, 잘린 키를 가진 객체가 존재하면 그 객체가 대신 삭제될 수 있었어요. S3 DeleteObject 작업은 이 문제의 영향을 받지 않았어요.
  • S3 ListBuckets 및 ListObjects 작업의 사전 서명 URL 지원을 수정했어요.

2022-08-06

  • 업로드 시 PutObject 요청에 명시적으로 설정하지 않으면 파일 본문을 기반으로 Content-Type을 자동으로 추론해요. 이 기능은 향후 멀티파트 작업에도 제공될 예정이에요.

2022-07-30

  • 마지막 업로드의 LastModified 날짜를 제공했을 때 S3 조건부 요청이 제대로 동작하도록 수정했어요. 바인딩 수정은 다음 릴리스에서 제공돼요.
  • If-Match / If-None-Match 헤더가 HTTP 표준 및 문서화되지 않은 AWS S3 동작에 따라 ETag 배열, 약(Weak) ETag 및 와일드카드(*)를 지원해요.

2022-07-21

  • 기본 AWS S3 버킷이 처음 생성될 때 반환하는 응답을 모방하는 다음 작업의 더미 구현을 추가했어요: GetBucketAcl.

2022-07-20

  • 기본 AWS S3 버킷이 처음 생성될 때 반환하는 응답을 모방하는 다음 작업들의 더미 구현을 추가했어요:
    • GetBucketVersioning
    • GetBucketLifecycleConfiguration
    • GetBucketReplication
    • GetBucketTagging
    • GetObjectLockConfiguration

2022-07-19

  • 최상위 Error 태그에 xmlns 네임스페이스 속성이 없을 것으로 예상하는 MinIO .NET SDK 및 기타 도구의 오류 응답에 대한 S3 호환성 문제를 수정했어요.
  • 2022-07-01 이전의 목록 연속 토큰(continuation tokens)은 더 이상 허용되지 않으며, 새 list 작업을 통해 다시 얻어야 해요.
  • list() 바인딩이 너무 많은 데이터를 반환해야 하는 경우 이제 올바르게 더 작은 limit을 반환해요(이전에는 Internal Error를 반환했어요).

2022-07-14

  • 500 개선: 이제 오류를 변환해서, 일부 작업에서 이전에 동시성 문제였던 것들이 InternalError 대신 TooMuchConcurrency가 돼요. 내부 개선을 통해 500 발생률도 줄였어요.
  • ListMultipartUpload가 encoding-type이 지정된 경우 반환되는 Key를 올바르게 인코딩해요.

2022-07-13

  • XML 선언이 포함된 S3 XML 문서가 더 이상 400 Bad Request / MalformedXML로 거부되지 않아요.
  • Arq Backup(Windows 버전만, Mac 버전 아님)에 영향을 주는 사소한 S3 XML 호환성 수정. 응답에 이제 XML 선언 태그 접두사가 포함되고, 모든 최상위 태그에 xmlns 속성이 존재해요.
  • 베타 ListMultipartUploads 지원.

2022-07-06

  • 곧 출시될 런타임 버전에서 제공될 r2_list_honor_include 호환 플래그를 지원해요(2022-07-14 호환 날짜 기준 기본 동작). 해당 호환 플래그/날짜가 없으면 list가 지정한 값과 관계없이 include: ['httpMetadata', 'customMetadata']로 암시적으로 계속 동작해요.
  • cf-create-bucket-if-missing를 PutObject/CreateMultipartUpload 요청에 설정해 버킷이 없으면 암시적으로 버킷을 생성할 수 있어요.
  • MinIO 클라이언트 사양과 맞지 않는 XML로 멀티파트 업로드를 게시할 때의 S3 호환성을 수정했어요. CompleteMultipartUpload에서 앞뒤 따옴표는 이제 선택 사항이며, AWS가 구현하는 실제 비표준 동작처럼 보이므로 무시돼요.

2022-07-01

  • ListObjects/ListObjectsV2에 대한 지원되지 않는 검색 파라미터가 이제 501 Not Implemented로 거부돼요.
  • 나열(Listing) 수정:
    • 폴더 안의 파일 수가 limit을 초과할 때의 나열 동작을 수정했어요(해당 큰 폴더의 CommonPrefix가 N번 표시되던 문제, 여기서 N = CommonPrefix 내 자식 수 / limit).
    • "폴더"의 기본 이름을 공유하는 객체가 나열 시 건너뛸 수 있는 가장자리 케이스를 수정했어요.
    • 특정 공통 접두사를 공유하는 일부 파일의 나열을 수정했어요.
  • DeleteObjects가 이제 한 번에 1000개 객체를 처리할 수 있어요.
  • S3 CreateBucket 요청이 값 false인 x-amz-bucket-object-lock-enabled을 지정할 수 있고, NotImplemented 오류로 거부되지 않아요. R2는 아직 객체 잠금(object lock)을 지원하지 않으므로 값 true는 계속 거부돼요.

2022-06-17

  • 일부 클라이언트에서 빈 구분자(delimiter) 사용 시 발생하던 회귀 문제를 수정했어요.
  • S3 사전 서명(pre-signed) URL 지원을 추가했어요.

2022-06-16

  • TooMuchConcurrency 및 NoSuchUpload 오류가 NoSuchBucket로 반환되던 S3 API UploadPart 작업의 회귀 문제를 수정했어요.

2022-06-13

  • S3 API ListObjectsV2 작업이 구분자 사용 시 빈 폴더를 공통 접두사(common prefix)로 반환하지 않던 버그를 수정했어요.
  • S3 API ListObjectsV2의 KeyCount 파라미터가 이제 키뿐 아니라 키와 공통 접두사의 합을 올바르게 반환해요.
  • 목록 작업의 잘못된 커서가 더 이상 InternalError로 실패하지 않고 적절한 오류 메시지를 반환해요.

2022-06-10

  • S3 API ListObjectsV2 요청에 ContinuationToken이 제공되면 응답에서 올바르게 반환되도록 수정했어요.
  • S3 API AbortMultipartUpload 작업을 여러 번 호출하면 오류가 발생하던 버그를 수정했어요.

2022-05-27

  • S3 API의 PutObject 또는 .put() 바인딩이 실패해도 버킷 업로드가 성공한 것처럼 표시될 수 있던 버그를 수정했어요.
  • S3 API UploadObject 또는 CreateMultipartUpload 작업에 조건부 헤더가 제공되고 객체가 존재할 때, 검사가 충족되지 않으면 412 Precondition Failed 상태 코드가 반환돼요.

2022-05-20

  • S3 API에 요청을 보낼 때 SignedHeaders에서 Accept-Encoding을 사용하면 SignatureDoesNotMatch 응답이 발생하던 버그를 수정했어요.

2022-05-17

  • S3 API에 대한 요청이 인증 서명에 사용되는 인코딩되지 않은 파라미터를 처리하지 않던 버그를 수정했어요.
  • 숫자처럼 보이는 키가 문자열이 아닌 숫자로 파싱되던 S3 API 요청 버그를 수정했어요.

2022-05-16

  • 경로 기반 라우팅(<ACCOUNT_ID>.r2.cloudflarestorage.com/<BUCKET>) 대신 S3 가상 호스트 스타일 경로(예: <BUCKET>.<ACCOUNT_ID>.r2.cloudflarestorage.com) 지원을 추가했어요.
  • 외부 도구와의 호환성을 위해 GetBucketLocation을 구현했어요. 항상 LocationConstraint를 auto로 반환해요.

2022-05-06

  • S3 API GetObject 범위가 이제 포괄적(inclusive)이에요(bytes=0-0이 첫 번째 바이트를 올바르게 반환해요).
  • S3 API GetObject 부분 읽기가 적절한 206 Partial Content 응답 코드를 반환해요.
  • 존재하지 않는 키(또는 존재하지 않는 버킷)에서 다른 버킷으로 복사하면 이제 적절한 NoSuchKey / NoSuchBucket 응답을 반환해요.
  • S3 API가 이제 관련 엔드포인트에서 적절한 Content-Type: application/xml 응답 헤더를 반환해요.
  • 멀티파트 업로드의 etag에 이제 파일이 게시된 파트 수를 나타내는 -N 접미사가 붙어요.
  • UploadPart와 UploadPartCopy가 이제 'internal error' 대신 TooMuchConcurrency나 NoSuchUpload 같은 적절한 오류 메시지를 반환해요.
  • UploadPart에 0 길이 파트를 보낼 수 있게 됐어요.

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 소스 파라미터가 이제 앞에 슬래시(leading slash)를 요구해요.
  • S3 API CopyObject 작업이 존재하지 않는 버킷으로 복사할 때 내부 오류 대신 NoSuchBucket 오류를 반환해요.
  • SigV4 서명과 CreateBucket LocationConstraint 파라미터의 auto 요구사항을 강제해요.
  • S3 API CreateBucket 작업이 이제 올바른 location 응답 헤더를 반환해요.

2022-04-14

  • S3 API가 이제 청크되지 않은(un-chunked) 서명된 페이로드를 지원해요.
  • Workers R2 바인딩의 .put()을 수정했어요.
  • S3 API 사용 시 키 이름이 제대로 디코딩되지 않던 회귀 문제를 수정했어요.
  • 객체를 삭제한 후 해당 객체의 접두사인 다른 객체를 삭제할 때 오류가 발생할 수 있던 버그를 수정했어요.
  • S3 API DeleteObjects 작업이 일부 경우에 객체가 삭제되었음에도 오류를 반환하지 않도록 수정했어요.
  • 목록 작업에서 startAfter와 continuationToken이 동작하지 않던 버그를 수정했어요.
  • S3 API ListObjects 작업이 이제 응답에서 Prefix, Delimiter, StartAfter, MaxKeys를 올바르게 렌더링해요.
  • S3 API ListObjectsV2가 이제 encoding-type 파라미터를 올바르게 존중해요.
  • S3 API PutObject 작업이 s3cmd 호환성을 위해 POST 요청과 함께 동작해요.

2022-04-04

  • S3 API DeleteObjects 요청에 128개가 넘는 키가 제공되면 InternalError 대신 올바르게 MalformedXML 오류를 반환해요.

더 알아보기 (Learn more)