내보내기(0) 인쇄
모두 확장

블록 배치

업데이트 날짜: 2014년 2월

Put Block 작업은 blob의 일부로 커밋할 새 블록을 만듭니다.

다음과 같이 Put Block 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount를 사용자의 저장소 계정으로 바꿉니다.

 

  PUT 메서드 요청 URI HTTP 버전

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

에뮬레이트된 저장소 서비스에 대해 요청을 수행할 때는 에뮬레이터 호스트 이름 및 Blob 서비스 포트를 127.0.0.1:10000으로 지정하고 뒤에 에뮬레이트된 저장소 계정 이름을 붙입니다.

 

  PUT 메서드 요청 URI HTTP 버전

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

자세한 내용은 개발 및 테스트에 Azure 저장소 에뮬레이터 사용를 참조하십시오.

 

매개 변수 설명

blockid

필수 사항입니다. 블록을 식별하는 유효한 Base64 문자열 값입니다. 인코딩하려면 먼저 문자열 크기가 64바이트 이하여야 합니다.

지정된 blob에서 blockid 매개 변수에 대해 지정되는 값 길이는 각 블록에 대해 동일해야 합니다.

Base64 문자열은 URL 인코딩이어야 합니다.

timeout

선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Blob 서비스 작업의 제한 시간 설정를 참조하십시오.

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

Authorization

필수 사항입니다. 인증 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증을 참조하십시오.

Date 또는 x-ms-date

필수 사항입니다. 요청의 UCT(협정 세계시)를 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증를 참조하십시오.

x-ms-version

인증된 모든 요청의 경우 필수입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure 저장소 서비스 버전 관리를 참조하십시오.

Content-Length

필수 사항입니다. 블록 콘텐츠의 길이(바이트 수)입니다. 블록은 크기가 4MB 이하여야 합니다.

길이가 제공되지 않은 경우 작업이 실패하고 상태 코드 411(길이 필요)이 나타납니다.

Content-MD5

선택 사항입니다. 블록 콘텐츠의 MD5 해시입니다. 이 해시는 전송 중 블록의 무결성을 확인하는 데 사용됩니다. 이 헤더를 지정하면 저장소 서비스가 도착한 콘텐츠의 해시를 이 헤더 값과 비교합니다.

이 MD5 해시는 blob에 저장되지 않습니다.

두 해시가 일치하지 않으면 작업이 실패하고 오류 코드 400(잘못된 요청)이 표시됩니다.

x-ms-lease-id:<ID>

blob에 활성 임대가 포함된 경우 필수입니다. 활성 임대가 포함된 blob에서 이 작업을 수행하려면 이 헤더에 대해 유효한 임대 ID를 지정합니다.

x-ms-client-request-id

선택 사항입니다. 저장소 분석 로깅을 사용하도록 설정한 경우 분석 로그에 기록된 1KB 문자 제한의 클라이언트에서 생성한 불투명 값을 제공합니다. 클라이언트 쪽 작업과 서버가 받은 요청의 상관 관계를 지정하는 데 이 헤더를 사용하는 것이 좋습니다. 자세한 내용은 저장소 분석 로깅 정보Microsoft Azure 로깅: 로그를 사용하여 저장소 요청 추적을 참조하십시오.

요청 본문에는 블록 콘텐츠가 포함됩니다.

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=
Content-Length: 1048576

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

작업에 성공하면 상태 코드 201(만들어짐)이 반환됩니다.

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

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 따릅니다.

 

응답 헤더 설명

Content-MD5

이 헤더는 클라이언트가 메시지 콘텐츠 무결성을 확인할 수 있도록 반환됩니다. 이 헤더 값은 Blob 서비스에 의해 계산되며, 요청 헤더에 지정된 것과 동일한 값일 필요는 없습니다.

x-ms-request-id

이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업 문제 해결를 참조하십시오.

x-ms-version

요청을 실행하는 데 사용되는 Blob 서비스의 버전을 나타냅니다. 이 헤더는 2009-09-19 버전 이상에 대해 수행된 요청에 대해 반환됩니다.

Date

응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: BN3lsXf+t19nMGs+vYakPA==
Date: Sun, 25 Sep 2011 23:47:09 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

이 작업은 계정 소유자 또는 이 blob 또는 해당 콘텐츠에 쓰기 권한이 있는 공유 액세스 서명을 갖고 있는 모든 사용자가 호출할 수 있습니다.

Put Block는 이후에 블록 blob에 포함하기 위한 블록입니다. 블록 크기는 최대 4MB일 수 있습니다.

블록 집합을 업로드한 후에는 블록 목록 배치 작업을 호출하여 이 집합으로부터 서버에 blob를 만들거나 업데이트할 수 있습니다. 집합의 각 블록은 해당 blob 내에서 고유한 블록 ID로 식별됩니다. 블록 ID 범위는 특정 blob로 한정되므로 다른 blob에 ID가 동일한 블록이 포함될 수 있습니다.

아직 존재하지 않는 blob에서 Put Block을 호출하면 콘텐츠 길이가 0인 새 블록 blob가 생성됩니다. 이 blob는 include=uncommittedblobs 옵션이 지정된 경우 List Blobs 작업으로 열거됩니다. 업로드한 블록은 새 blob에서 Put Block List를 호출할 때까지 커밋되지 않습니다. 이 방식으로 만든 blob는 서버에 1주일 동안 유지 관리됩니다. 해당 기간 내에 blob에 블록을 추가하거나 커밋하지 않은 경우, blob가 가비지 수집됩니다.

현재 Put Block List 작업으로 지원되는 최대 blob 크기는 200GB이며 최대 50,000개 블록입니다. blob는 상시 최대 100,000개까지 커밋되지 않은 블록을 포함할 수 있으며, 커밋되지 않은 블록 집합의 전체 크기는 400GB를 초과할 수 없습니다. 이러한 최대값을 초과하는 경우 서비스가 상태 코드 413(RequestEntityTooLarge)을 반환합니다.

Put Block 작업으로 성공적으로 업로드된 블록은 Put Block List로 커밋될 때까지 blob에 포함되지 않습니다. Put Block List를 호출하여 신규 또는 업데이트된 blob를 커밋하기 전에 Blob 가져오기를 호출하면 커밋되지 않은 블록이 포함되지 않고 blob 콘텐츠가 반환됩니다.

아직 커밋되지 않은 다른 블록과 동일한 블록 ID가 포함된 블록을 업로드할 경우, 다음에 Put Block List 작업이 성공할 때 해당 ID를 포함하는 마지막으로 업로드된 블록이 커밋됩니다.

Put Block List가 호출된 후에는 블록 목록에 지정된 커밋되지 않은 모든 블록이 새 blob의 일부로 커밋됩니다. blob에 대한 블록 목록에 지정되지 않은 커밋되지 않은 모든 블록은 가비지 수집되고 Blob 서비스에서 제거됩니다. 또한 Put Block 작업을 마지막으로 성공한 지 1주 이내에 동일한 blob에서 Put Block List 또는 Put Block에 대한 호출이 성공하지 않으면, 커밋되지 않은 모든 블록이 가비지 수집됩니다. blob에서 Blob 배치를 호출하면 커밋되지 않은 모든 블록이 가비지 수집됩니다.

blob에 활성 임대가 포함된 경우 클라이언트가 blob에 블록을 기록하려면 요청에 유효한 임대 ID를 지정해야 합니다. 클라이언트가 임대 ID를 지정하지 않거나 잘못된 임대 ID를 지정할 경우 Blob 서비스가 상태 코드 412(전제 조건 실패)를 반환합니다. 클라이언트가 임대 ID를 지정하지만 blob에 활성 임대가 없는 경우에도 Blob 서비스가 상태 코드 412(전제 조건 실패)를 반환합니다.

지정된 blob에 대해 모든 블록 ID 길이가 동일해야 합니다. 기존의 커밋되지 않은 블록의 블록 ID와 다른 블록 ID를 사용해서 블록을 업로드한 경우 서비스가 오류 응답 코드 400(잘못된 요청)을 반환합니다.

4MB보다 큰 블록을 업로드하려고 시도하면 서비스가 상태 코드 413(요청 엔터티 너무 큼)을 반환합니다. 또한 서비스에서 허용된 최대 블록 크기(바이트)가 포함된 추가 오류 정보가 응답으로 반환됩니다.

Put Block를 호출해도 기존 blob의 마지막 수정 시간은 업데이트되지 않습니다.

페이지 blob에서 Put Block를 호출하면 오류가 반환됩니다.

표시:
© 2014 Microsoft