다음을 통해 공유


블록 목록 배치

이 연산은 Put Block List 블롭을 구성하는 블록 ID 목록을 지정하여 블롭을 작성합니다. 블롭의 일부로 작성되려면, 블록이 이전의 Put Block 연산에서 서버에 성공적으로 기록되어야 합니다.

변경된 블록만 업로드한 뒤, 새로 추가된 블록과 기존 블록을 함께 커밋하여 블롭을 업데이트할 수 있습니다 Put Block List . 이는 커밋된 블록 리스트에서 커밋할지 미커밋 블록 리스트에서 커밋할지 또는 가장 최근에 업로드된 블록 버전을 커밋할지 지정함으로써 할 수 있습니다.

요청

다음과 같이 Put Block List 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount를 저장 계정 이름으로 교체하세요:

PUT 메서드 요청 URI HTTP 버전
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1

에뮬레이트된 스토리지 서비스 요청

에뮬레이션 스토리지 서비스에 대해 요청을 할 때, 에뮬레이터 호스트명과 Blob 서비스 포트를 127.0.0.1:10000, 에뮬레이션 스토리지 계정 이름으로 지정하세요:

PUT 메서드 요청 URI HTTP 버전
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1

스토리지 에뮬레이터는 최대 2gibibytes(GiB)의 Blob 크기만 지원합니다.

자세한 내용은 로컬 Azure Storage 개발에 Azurite 에뮬레이터 사용을 참조하세요.

URI 매개 변수

요청 URI에 다음 추가 매개 변수를 지정할 수 있습니다.

매개 변수 설명
timeout Optional. timeout 매개 변수는 초 단위로 표현됩니다. 자세한 내용은 Blob 서비스 연산을 위한 타임아웃 설정(Set Timeouts for Blob service operations)을 참조하세요.

요청 헤더

필수 및 선택적 요청 헤더는 다음 표에 설명되어 있습니다.

요청 헤더 설명
Authorization 필수입니다. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage대한 요청 권한 부여를 참조하세요.
Date 또는 x-ms-date 필수입니다. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage대한 요청 권한 부여를 참조하세요.
x-ms-version 모든 권한 있는 요청에 필요합니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
Content-Length 필수입니다. 요청 내용의 길이(바이트 단위)입니다. 이 헤더는 블록 목록의 내용 길이를 의미하며, 블롭 자체의 길이는 아닙니다.
Content-MD5 Optional. 요청 콘텐츠의 MD5 해시입니다. 이 해시는 전송 중에 요청 콘텐츠의 무결성을 확인하는 데 사용됩니다. 두 해시가 일치하지 않으면 작업이 실패하고 오류 코드 400(잘못된 요청)이 표시됩니다.

이 헤더는 요청 내용과 연관되어 있으며, 블롭 자체의 내용과는 연관되어 있지 않습니다.
x-ms-content-crc64 Optional. 요청 콘텐츠의 CRC64 해시입니다. 이 해시는 전송 중에 요청 콘텐츠의 무결성을 확인하는 데 사용됩니다. 두 해시가 일치하지 않으면 작업이 실패하고 오류 코드 400(잘못된 요청)이 표시됩니다.

이 헤더는 요청 내용과 연관되어 있으며, 블롭 자체의 내용과는 연관되어 있지 않습니다.

Content-MD5 및 x-ms-content-crc64 헤더가 모두 있는 경우 요청은 400(잘못된 요청)으로 실패합니다.

이 헤더는 버전 2019-02-02 이상에서 지원됩니다.
x-ms-blob-cache-control Optional. 블롭의 캐시 제어를 설정합니다. 이 속성이 지정되어 있으면 블롭과 함께 저장되고 읽기 요청으로 반환됩니다.

요청에 속성이 명시되어 있지 않으면, 요청이 성공하면 블롭에서 해당 속성이 해제됩니다.
x-ms-blob-content-type Optional. 블롭의 콘텐츠 유형을 설정합니다. 명시되어 있으면 이 속성은 블롭과 함께 저장되고 읽기 요청으로 반환됩니다.

콘텐츠 유형이 지정되어 있지 않으면 기본 유형 application/octet-stream인 .
x-ms-blob-content-encoding Optional. 블롭의 콘텐츠 인코딩을 설정합니다. 명시되어 있으면 이 속성은 블롭과 함께 저장되고 읽기 요청으로 반환됩니다.

요청에 속성이 명시되어 있지 않으면, 요청이 성공하면 블롭에서 해당 속성이 해제됩니다.
x-ms-blob-content-language Optional. 블롭의 콘텐츠 언어를 설정합니다. 명시되어 있으면 이 속성은 블롭과 함께 저장되고 읽기 요청으로 반환됩니다.

요청에 속성이 명시되어 있지 않으면, 요청이 성공하면 블롭에서 해당 속성이 해제됩니다.
x-ms-blob-content-md5 Optional. Blob 콘텐츠의 MD5 해시입니다. 이 해시는 검증되지 않습니다. 각 블록의 해시가 업로드될 때 이미 검증되었기 때문입니다.

Get Blob 연산은 Content-MD5 응답 헤더의 값을 반환합니다.

이 속성이 요청에 명시되어 있지 않으면, 요청이 성공하면 블롭에서 해제됩니다.
x-ms-meta-name:value Optional. 블롭과 연관된 사용자 정의 이름-값 쌍들.

버전 2009-09-19 기준으로, 메타데이터 이름은 C# 식별자에 대한 명명 규칙을 준수해야 합니다.
x-ms-encryption-scope Optional. 블롭을 암호화하는 데 사용할 암호화 범위를 나타냅니다. 이 값은 커밋되는 모든 블록을 암호화하는 데 사용되는 암호화 범위와 일치해야 합니다. 이 헤더는 버전 2019-02-02 이상에서 지원됩니다.
x-ms-encryption-context Optional. 기본값은 "비어 있음"입니다. 값이 설정되면 블롭 시스템 메타데이터가 설정됩니다. 최대 길이-1024. 계정에 대해 계층 구조 네임스페이스를 사용하는 경우에만 유효합니다. 이 헤더는 2021-08-06 버전 이후 버전에서 지원됩니다.
x-ms-tags Optional. 지정된 쿼리 문자열로 인코딩된 태그를 블롭에 설정합니다. 추가 정보는 비고(Mark ) 섹션을 참조하세요. 버전 2019-12-12 이상에서 지원됩니다.
x-ms-lease-id:<ID> Blob에 활성 임차가 있는 경우 필수입니다. 활성 임대가 있는 Blob에서 이 작업을 수행하려면 이 헤더에 유효한 임대 ID를 지정합니다.
x-ms-client-request-id Optional. 스토리지 분석 로깅이 설정될 때 분석 로그에 기록되는 클라이언트가 생성한 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다.
x-ms-blob-content-disposition Optional. Blob의 Content-Disposition 헤더를 설정합니다. 버전 2013-08-15 이상에 사용할 수 있습니다.

헤더 필드는 Content-Disposition 응답 페이로드를 처리하는 방법에 대한 추가 정보를 전달하며, 추가 메타데이터를 첨부하는 데 사용할 수 있습니다. 예를 들어, 로 설정 attachment되어 있다면, 이 헤더는 사용자 에이전트가 응답을 표시하지 말고 대신 '다른 이름으로 저장' 대화상자를 표시해야 함을 나타냅니다.

Get BlobGet Blob Properties 연산의 응답에는 content-disposition 헤더가 포함됩니다.
x-ms-access-tier Optional. 버전 2018-11-09 이후. 블롭에 설정할 티어를 나타냅니다. 블록 블롭의 경우, 이 헤더는 버전 2018-11-09 이후 블롭 저장소나 범용 v2 계정에서만 지원됩니다. 블록 블롭 티어의 유효한 값은 , Cool, Cold, Smart 그리고 Archive입니다.Hot
참고:Cold 계층은 버전 2021-12-02 이상에서 지원됩니다. Smart 티어는 2026-02-06 이후 버전에서 지원되며, 현재 공개 프리뷰 중입니다.
블록 블롭 계층에 대한 자세한 정보는 Blob storage tiers를 참조하세요.
x-ms-immutability-policy-until-date 버전 2020-06-12 이상. 블롭에 설정된 보존 가능 날짜 를 지정합니다. Blob이 수정되거나 삭제되지 않도록 보호할 수 있는 날짜입니다. RFC1123 형식을 따릅니다.
x-ms-immutability-policy-mode 버전 2020-06-12 이상. 블롭에 설정할 불변성 정책 모드를 지정합니다. 유효한 값은 unlockedlocked입니다. 이 값은 unlocked 사용자가 보유 기간을 늘리거나 줄여 정책을 변경할 수 있음을 나타냅니다. 이 값은 locked 이러한 행위가 금지되었음을 나타냅니다.
x-ms-legal-hold 버전 2020-06-12 이상. 블롭에 설정된 법적 유지를 지정합니다. 유효한 값은 다음과 같습니다 truefalse.
x-ms-expiry-option Optional. 버전 2023-08-03 이상. 요청의 만료일 옵션을 명시하며, ExpiryOption 참조. 이 헤더는 계층 구조 네임스페이스를 사용하도록 설정된 계정에 유효합니다.
x-ms-expiry-time Optional. 버전 2023-08-03 이상. Blob이 만료되도록 설정된 시간을 지정합니다. 만료 날짜의 형식은 x-ms-expiry-option따라 다릅니다. 자세한 내용은 ExpiryOption참조하세요. 이 헤더는 계층 구조 네임스페이스를 사용하도록 설정된 계정에 유효합니다.

expiryTime 요청에 새로운 값이 포함되어 있지 않으면 이미 존재하는 블롭에 있는 것은 지우지 않습니다.expiryTime

이 연산은 또한 지정된 조건이 충족될 때만 조건부 헤더를 사용하여 블록 리스트를 커밋하는 것을 지원합니다. 자세한 내용은 Blob Storage 작업대한 조건부 헤더 지정을 참조하세요.

요청 헤더(고객이 제공한 암호화 키)

버전 2019-02-02부터는 고객이 제공한 키로 블롭을 암호화하기 위한 요청에서 다음과 같은 헤더를 지정할 수 있습니다. 고객이 제공한 키(및 해당 헤더 집합)를 사용한 암호화는 선택 사항입니다.

요청 헤더 설명
x-ms-encryption-key 필수입니다. Base64로 인코딩된 AES-256 암호화 키입니다.
x-ms-encryption-key-sha256 필수입니다. 암호화 키의 Base64로 인코딩된 SHA256 해시입니다.
x-ms-encryption-algorithm: AES256 필수입니다. 암호화에 사용할 알고리즘을 지정합니다. 이 헤더의 값은 AES256이어야 합니다.

요청 본문

요청 본문에서 Blob 저장소가 요청된 블록에 대해 검사해야 할 블록 목록을 지정할 수 있습니다. 이렇게 하면 전체 블롭을 다시 업로드하는 대신 개별 블록을 삽입, 교체, 삭제함으로써 기존 블롭을 업데이트할 수 있습니다. 변경된 블록을 업로드한 후에는, 기존 블록과 함께 새 블록을 커밋하여 새로운 버전의 블롭을 커밋할 수 있습니다.

블롭을 업데이트하려면, 서비스가 커밋된 블록 리스트, 미커밋 블록 리스트, 또는 먼저 미커밋 블록 리스트에서 블록 ID를 찾고, 그 다음에 커밋드 블록 리스트에서 찾아야 한다고 지정할 수 있습니다. 어떤 방식을 사용할지 표시하려면, 요청 본체 내 적절한 XML 요소 내에 있는 블록 ID를 다음과 같이 지정하세요:

  • 요소 내에 Committed 블록 ID를 지정하여 Blob 저장소가 지정된 블록에 대해 커밋된 블록 리스트만 검색하도록 표시하세요. 만약 그 블록이 커밋된 블록 목록에 없으면, 블록은 블롭의 일부로 작성되지 않고, 블롭 스토리지는 상태 코드 400(잘못된 요청)을 반환합니다.

  • 요소 내에 Uncommitted 블록 ID를 지정하여 Blob 저장소가 지정된 블록에 대해 미커밋 블록 리스트만 검색하도록 표시하세요. 만약 해당 블록이 미커밋 블록 목록에 없으면, 블록은 블롭의 일부로 기록되지 않으며, 블롭 저장소는 상태 코드 400(잘못된 요청)을 반환합니다.

  • 요소 내에서 Latest 블록 ID를 지정하여 Blob 저장소가 먼저 미커밋 블록 리스트를 검색해야 함을 나타냅니다. 만약 그 블록이 미커밋 리스트에 있다면, 그 버전의 블록이 최신 것이므로 블롭에 기록되어야 합니다. 만약 그 블록이 미커밋 리스트에서 찾지 못하면, 서비스는 커밋드 블록 리스트에서 이름 있는 블록을 검색하고, 발견되면 그 블록을 블롭에 기록해야 합니다.

이 버전의 Put Block List 요청 본문은 다음과 같은 XML 형식을 사용합니다:

<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Committed>first-base64-encoded-block-id</Committed>  
  <Uncommitted>second-base64-encoded-block-id</Uncommitted>  
  <Latest>third-base64-encoded-block-id</Latest>  
  ...  
</BlockList>  
  

샘플 요청

시연 Put Block List을 위해 , 이제 커밋하려는 세 개의 블록을 업로드했다고 가정해 보세요. 다음 예시는 나열된 각 블록의 최신 버전을 사용해야 함을 표시하여 새로운 블롭을 커밋합니다. 이 블록들이 이미 커밋되었는지 알 필요는 없습니다.

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1  
  
Request Headers:  
x-ms-date: Wed, 31 Aug 2011 00:17:43 GMT  
x-ms-version: 2011-08-18  
Content-Type: text/plain; charset=UTF-8  
Authorization: SharedKey myaccount:DJ5QZSVONZ64vAhnN/wxcU+Pt5HQSLAiLITlAU76Lx8=  
Content-Length: 133  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Latest>AAAAAA==</Latest>  
  <Latest>AQAAAA==</Latest>  
  <Latest>AZAAAA==</Latest>  
</BlockList>  
  

다음으로, 블롭을 업데이트하고 싶다고 가정해 봅시다. 새로운 블롭에는 다음과 같은 변화가 있습니다:

  • ID ANAAAA==.가 있는 새로운 블록입니다. 이 블록은 먼저 Put Block 호출과 함께 업로드되어야 하며, 호출 때까지 Put Block List미커밋 블록 목록에 나타납니다.

  • ID AZAAAA==.를 가진 블록의 업데이트 버전입니다. 이 블록은 먼저 Put Block 호출과 함께 업로드되어야 하며, 호출 때까지 Put Block List미커밋 블록 목록에 나타납니다.

  • ID AAAAAA==.가 있는 블록 제거 이 블록이 다음 호출 Put Block List에 포함되지 않기 때문에, 블록은 사실상 블롭에서 제거됩니다.

다음 예시는 블롭을 업데이트하는 호출 과정을 Put Block List 보여줍니다:

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1  
  
Request Headers:  
x-ms-date: Wed, 31 Aug 2009 00:17:43 GMT  
x-ms-version: 2011-08-18  
Content-Type: text/plain; charset=UTF-8  
x-ms-expiry-option: RelativeToNow
x-ms-expiry-time: 30000
Authorization: SharedKey myaccount:DJ5QZSVONZ64vAhnN/wxcU+Pt5HQSLAiLITlAU76Lx8=  
Content-Length: 133  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Uncommitted>ANAAAA==</Uncommitted>  
  <Committed>AQAAAA==</Committed>  
  <Uncommitted>AZAAAA==</Uncommitted>  
</BlockList>  
  

응답

응답에는 HTTP 상태 코드와 응답 헤더 집합이 포함됩니다.

상태 코드

작업이 성공하면 상태 코드 201(생성됨)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드참조하세요.

응답 헤더

이 작업에 대한 응답에는 다음 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더도 포함될 수 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양준수합니다.

응답 설명
ETag 엔터티 태그는 클라이언트가 요청 헤더를 사용하여 If-Match 조건부 GET/PUT 연산을 수행할 수 있는 값을 포함합니다. 요청 버전이 2011-08-18 이상인 경우 ETag 값은 따옴표로 묶습니다.
Last-Modified Blob이 마지막으로 수정된 날짜/시간입니다. 날짜 형식은 RFC 1123을 따릅니다. 자세한 내용은 헤더날짜/시간 값을 나타냅니다.

Blob의 메타데이터 또는 속성 업데이트를 포함하여 Blob을 수정하는 모든 작업은 Blob의 마지막 수정 시간을 변경합니다.
Content-MD5 클라이언트가 메시지 콘텐츠 무결성을 확인할 수 있도록 반환됩니다. 이 헤더는 요청의 내용(이 경우 블록 목록)을 의미하며, 블롭 자체의 내용이 아닙니다. 2019-02-02 버전 이후 버전에서는 요청에 이 헤더가 있을 때만 이 헤더가 반환됩니다.
x-ms-content-crc64 버전 2019-02-02 이후 버전에서는 이 헤더가 반환되어 클라이언트가 메시지 내용의 무결성을 확인할 수 있습니다. 이 헤더는 요청의 내용(이 경우 블록 목록)을 의미하며, 블롭 자체의 내용이 아닙니다.

이 헤더는 요청에 헤더가 없을 때 Content-md5 반환됩니다.
x-ms-request-id 만들어진 요청을 고유하게 식별하며 이를 사용하여 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용되는 Blob 저장소 버전입니다. 이 헤더는 버전 2009-09-19 이상에 대해 수행된 요청에 대해 반환됩니다.
Date 서비스가 생성하는 UTC 날짜/시간 값으로, 응답이 시작된 시점을 나타냅니다.
x-ms-request-server-encrypted: true/false 버전 2015-12-11 이상. 이 헤더의 값은 지정된 알고리즘으로 요청 내용이 성공적으로 암호화될 경우 로 true 설정됩니다. 그렇지 않으면 값이 false설정됩니다.
x-ms-encryption-key-sha256 버전 2019-02-02 이상. 이 헤더는 요청이 고객이 제공한 키를 암호화에 사용했을 때 반환되므로, 클라이언트는 제공된 키를 사용해 요청 내용이 성공적으로 암호화되었는지 확인할 수 있습니다.
x-ms-encryption-scope 버전 2019-02-02 이상. 이 헤더는 요청이 암호화 범위를 사용했을 때 반환되므로, 클라이언트는 암호화 범위를 사용하여 요청의 내용이 성공적으로 암호화되었는지 확인할 수 있습니다.
x-ms-version-id: <DateTime> 버전 2019-12-12 이상. Blob을 고유하게 식별하는 불투명 DateTime 값을 반환합니다. 이 헤더의 값은 블롭의 버전을 나타내며, 이후 요청에서 블롭에 접근할 때 사용할 수 있습니다.
x-ms-client-request-id 요청 및 해당 응답의 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값은 요청에 있고 값에 표시되는 ASCII 문자가 1,024자 이하인 경우 x-ms-client-request-id 헤더의 값과 같습니다. x-ms-client-request-id 헤더가 요청에 없으면 응답에 표시되지 않습니다.

샘플 응답

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sun, 25 Sep 2011 00:17:44 GMT  
ETag: “0x8CB172A360EC34B”  
Last-Modified: Sun, 25 Sep 2011 00:17:43 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-version-id: <DateTime>  

Authorization

Azure Storage에서 데이터 액세스 작업을 호출할 때 권한 부여가 필요합니다. 아래 설명된 대로 Put Block List 작업에 권한을 부여할 수 있습니다.

요청이 x-ms-tags 요청 헤더를 사용하여 태그를 지정하는 경우 호출자는 Blob 태그 설정 작업의 권한 부여 요구 사항을 충족해야 합니다.

중요합니다

Microsoft는 관리 ID와 함께 Microsoft Entra ID를 사용하여 Azure Storage에 대한 요청을 승인하는 것이 좋습니다. Microsoft Entra ID는 공유 키 권한 부여에 비해 뛰어난 보안 및 사용 편의성을 제공합니다.

Azure Storage는 Microsoft Entra ID를 사용하여 Blob 데이터 요청에 대해 권한을 부여하는 것을 지원합니다. Microsoft Entra ID를 사용하면 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 보안 주체에 권한을 부여할 수 있습니다. 보안 주체는 사용자, 그룹, 애플리케이션 서비스 주체 또는 Azure 관리 ID일 수 있습니다. 보안 주체는 OAuth 2.0 토큰을 반환하기 위해 Microsoft Entra ID에 의해 인증됩니다. 그런 다음 토큰을 사용하여 Blob service에 대한 요청을 승인할 수 있습니다.

Microsoft Entra ID를 사용한 권한 부여에 대한 자세한 내용은 Microsoft Entra ID사용하여 Blob에 대한 액세스 권한 부여를 참조하세요.

Permissions

아래에는 Microsoft Entra 사용자, 그룹, 관리 ID 또는 서비스 주체가 Put Block List 작업을 호출하는 데 필요한 RBAC 작업과 이 작업을 포함하는 최소 권한의 기본 제공 Azure RBAC 역할이 나와 있습니다.

Azure RBAC를 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Blob 데이터액세스하기 위한 Azure 역할 할당을 참조하세요.

비고

이 연산은 Put Block List 블록들을 결합하여 블롭을 만드는 순서를 강제합니다.

동일한 블록 ID가 블록 목록에서 여러 번 지정할 수 있습니다. 블록 ID가 여러 번 지정된다면, 이는 최종 커밋된 블롭의 블록 목록 내 각 위치에 있는 바이트 범위를 나타냅니다. 만약 한 블록 ID가 목록에 두 번 이상 나타난다면, 두 블록 ID 인스턴스는 동일한 블록 리스트 내에서 지정되어야 합니다. 즉, 두 인스턴스 모두 원소, Uncommitted 원소 Latest 또는 원소 내에 Committed 지정되어야 합니다.

를 사용하면 Put Block List전체 블롭을 다시 업로드하지 않고도 개별 블록을 삽입, 업데이트, 삭제하여 수정할 수 있습니다. 현재 커밋된 블록 리스트와 커밋되지 않은 블록 리스트 모두에서 블록 ID를 지정하여 새로운 블롭을 만들거나 기존 블롭의 내용을 업데이트할 수 있습니다. 이렇게 하면 이미 기존 블록의 일부인 미커밋 블록 리스트에서 몇 개의 새 블록을, 나머지 블록 목록에서 기존 블록의 일부인 블록을 지정하여 블롭을 업데이트할 수 있습니다.

요소에 Latest 블록 ID가 지정되어 있고, 커밋된 블록 리스트와 미커밋 블록 리스트 모두에 동일한 블록 ID가 존재한다면, Put Block List 미커밋된 블록 리스트에서 해당 블록을 커밋합니다. 만약 블록 ID가 커밋된 블록 리스트에 존재하지만 커밋되지 않은 블록 리스트에는 없다면, Put Block List 커밋된 블록 리스트에서 해당 블록을 커밋합니다.

블록 블롭의 각 블록은 크기가 다를 수 있습니다. 블록 블롭은 최대 50,000개의 커밋 블록을 포함할 수 있습니다. 블롭과 연관될 수 있는 최대 미커밋 블록 수는 100,000개입니다.

다음 표는 서비스 버전별 최대 허용 블록 및 블롭 크기를 설명합니다:

서비스 버전 최대 블록 크기 (출처)Put Block 최대 블롭 크기 (를 통해 Put Block List) 단일 쓰기 연산을 통한 최대 블롭 크기 (통해)Put Blob
버전 2019-12-12 이상 4,000 메비바이트 (MiB) 약 190.7TiB(4,000MiB × 50,000블록) 5,000 MiB
버전 2016-05-31부터 2019-07-07까지 100MiB 약 4.75 TiB (100 MiB × 50,000 블록) 256MiB
2016년 5월 31일 이전 버전 4MiB 약 195 GiB (50,000 블록 × 4 MiB 64MiB

기존 블롭을 업데이트하려고 호출 Put Block List 하면, 그 블롭의 기존 속성과 메타데이터가 덮어써집니다. 하지만 기존의 스냅샷은 블롭과 함께 유지됩니다. 조건부 요청 헤더를 사용하여 지정된 조건이 충족될 때만 연산을 수행할 수 있습니다.

만약 블록이 빠져서 연산이 Put Block List 실패한다면, 그 블록을 업로드해야 합니다.

마지막 성공적인 Put Block 작업 후 일주일 이내에 블롭에 Put BlockPut Block List 대한 성공적인 호출이 없으면 미커밋 블록은 가라비지 컬렉션으로 처리됩니다. Blob에서 Put Blob 이 호출되면 커밋되지 않은 블록은 가비지 수집됩니다.

헤더에 x-ms-tags 태그가 제공된 경우, 반드시 쿼리 문자열로 인코딩되어야 합니다. 태그 키와 숫자는 명명과 길이 요구사항을 충족해야 하며, 이는 .Set Blob Tags 또한, 헤더에는 x-ms-tags 최대 2 KiB 크기의 태그가 포함될 수 있습니다. 더 많은 태그가 필요하다면, Set Blob Tags 연산을 사용하세요.

블롭이 활성 임대를 가지고 있다면, 클라이언트는 블록 리스트를 커밋하기 위해 요청할 때 유효한 리스 ID를 지정해야 합니다. 클라이언트가 임대 ID를 지정하지 않거나 잘못된 임대 ID를 지정하는 경우 Blob Storage는 상태 코드 412(사전 조건 실패)를 반환합니다. 클라이언트가 임대 ID를 지정했지만 블롭에 활성 임대가 없으면, 블롭 저장소는 상태 코드 412(전제 조건 실패)도 반환합니다. 클라이언트가 아직 존재하지 않는 블롭에 대해 리스 ID를 지정하면, 블롭 스토리지는 2013-08-15 버전 이후 요청에 대해 상태 코드 412(전제 조건 실패)를 반환합니다. 이전 버전의 경우 Blob 저장소는 상태 코드 201(생성됨)을 반환합니다.

블롭에 활성 임대 계약이 있고 업데이트를 요청 Put Block List 하면, 임대 계약은 업데이트된 블롭에서 유지됩니다.

Put Block List 블록 덩어리에만 적용됩니다. 페이지 블롭에서 호출하면 Put Block List 상태 코드 400(잘못된 요청)이 발생합니다.

블롭을 archive 덮어쓰는 것은 실패합니다. 그렇지 않으면, 헤더가 x-ms-access-tier 제공되지 않은 경우 블롭이 이전 블롭으로부터 티어를 상속받습니다.

결제

가격 책정 요청은 Blob Storage REST API를 통해 직접 Blob Storage API를 사용하는 클라이언트 또는 Azure Storage 클라이언트 라이브러리에서 비롯할 수 있습니다. 이러한 요청은 트랜잭션당 요금이 발생합니다. 트랜잭션 유형은 계정에 청구되는 방식에 영향을 줍니다. 예를 들어 읽기 트랜잭션은 쓰기 트랜잭션과 다른 청구 범주에 발생합니다. 다음 표에서는 스토리지 계정 유형에 따라 Put Block List 요청에 대한 청구 범주를 보여 줍니다.

Operation Storage 계정 유형 청구 범주
블록 목록 배치 프리미엄 블록 Blob
표준 범용 v2
표준 범용 v1
쓰기 작업

지정된 청구 범주의 가격 책정에 대한 자세한 내용은 Azure Blob Storage 가격 책정참조하세요.

참고하십시오

블록 블롭, 덧붙인 블롭, 페이지 블롭을 이해하세요
Azure Storage 대한 요청 권한 부여
상태 및 오류 코드
블롭 서비스 오류 코드
Blob 서비스 작업에 대해 타임아웃을 설정하세요