영업: 1-800-867-1380

Blob 배치

업데이트 날짜: 2015년 4월

Put Blob 작업은 새로운 블록 blob 또는 페이지 Blob을 만들거나 기존 블록 blob의 콘텐츠를 업데이트합니다.

기존 블록 Blob을 업데이트하면 blob에 있는 기존 메타데이터를 덮어씁니다. 부분 업데이트는 Put Blob에서 지원되지 않으며 기존 blob의 콘텐츠를 새 blob의 콘텐츠로 덮어씁니다. 블록 blob 콘텐츠에 대한 부분 업데이트를 수행하려면 블록 목록 배치(REST API) 작업을 사용합니다.

페이지 Blob을 만들기 위해 Put Blob를 호출하면 blob 초기화만 수행됩니다. 페이지 blob에 콘텐츠를 추가하려면 페이지 배치(REST API) 작업을 호출합니다.

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

 

  PUT 메서드 요청 URI HTTP 버전

https://myaccount.blob.core.windows.net/mycontainer/myblob

HTTP/1.1

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

 

  PUT 메서드 요청 URI HTTP 버전

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.1

저장소 에뮬레이터는 최대 2GB의 blob만 지원합니다.

자세한 내용은 Using the Azure Storage Emulator for Development and Testing를 참조하세요.

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

 

매개 변수 설명

timeout

선택적 요소입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Blob 서비스 작업에 대한 제한 시간 설정를 참조하세요.

다음 표에서는 블록 blob 및 페이지 blob 모두의 작업에 대한 필수 및 선택적인 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

Authorization

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

Date 또는 x-ms-date

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

x-ms-version

인증된 모든 요청의 경우 필수입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Windows Azure에서 Blob, 큐 및 테이블 서비스의 버전 관리를 참조하세요.

Content-Length

필수 사항입니다. 요청의 길이입니다.

Blob 배치는 페이지 Blob을 초기화하는 데에만 사용되므로 페이지 blob의 경우 이 헤더 값이 0으로 설정되어야 합니다. 페이지 blob 크기는 x-ms-blob-content-length 헤더에 지정됩니다. 모든 콘텐츠는 페이지 배치(REST API)를 호출하여 페이지 blob에 기록해야 합니다.

Content-Type

선택적 요소입니다. blob의 MIME 콘텐츠 형식입니다. 기본 유형은 application/octet-stream입니다.

Content-Encoding

선택적 요소입니다. blob에 적용된 콘텐츠 인코딩을 지정합니다. 이 값은 blob 리소스에 대해 Blob 가져오기 작업이 수행된 경우 클라이언트에 반환됩니다. 클라이언트는 blob 콘텐츠를 디코딩하기 위해 반환된 경우 이 값을 사용할 수 있습니다.

Content-Language

선택적 요소입니다. 이 리소스에서 사용되는 자연어를 지정합니다.

Content-MD5

선택적 요소입니다. blob 콘텐츠의 MD5 해시입니다. 이 해시는 전송 중 blob의 무결성을 확인하는 데 사용됩니다. 이 헤더가 지정된 경우 저장소 서비스가 도착한 해시와 전송된 해시를 확인합니다. 두 해시가 일치하지 않으면 작업이 실패하고 오류 코드 400(잘못된 요청)이 표시됩니다.

2012-02-12 버전 이상에서 생략된 경우 Blob 서비스는 MD5 해시를 생성합니다.

Blob 가져오기, Blob 속성 가져오기(REST API)Blob 나열의 결과에는 MD5 해시가 포함됩니다.

Cache-Control

선택적 요소입니다. Blob 서비스가 이 값을 저장하지만 이를 사용하거나 수정하지 않습니다.

x-ms-blob-content-type

선택적 요소입니다. blob의 콘텐츠 형식을 설정합니다.

x-ms-blob-content-encoding

선택적 요소입니다. blob의 콘텐츠 인코딩을 설정합니다.

x-ms-blob-content-language

선택적 요소입니다. blob의 콘텐츠 언어를 설정합니다.

x-ms-blob-content-md5

선택적 요소입니다. blob의 MD5 해시를 설정합니다.

x-ms-blob-cache-control

선택적 요소입니다. blob의 캐시 제어를 설정합니다.

x-ms-blob-type:<BlockBlob | PageBlob>

필수 사항입니다. 만들려는 blob 형식으로 블록 blob 또는 페이지 Blob을 지정합니다.

x-ms-meta-name:value

선택적 요소입니다. blob과 메타데이터로 연결된 이름-값 쌍입니다.

2009-09-19 버전부터는 메타데이터 이름이 C# 식별자의 명명 규칙을 따라야 합니다.

x-ms-lease-id:<ID>

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

x-ms-blob-content-disposition

선택적 요소입니다. blob의 Content-Disposition 헤더를 설정합니다. 2013-08-15 이상 버전에서 사용할 수 있습니다.

Content-Disposition 응답 헤더 필드는 응답 페이로드를 처리하는 방법에 대한 추가 정보를 제공하고 추가 메타데이터를 연결하는 데도 사용할 수 있습니다. 예를 들어 attachment로 설정되는 경우 사용자 에이전트가 응답을 표시하지 않는 대신 지정된 blob 이름이 아닌 파일 이름으로 다른 이름으로 저장 대화 상자를 표시해야 함을 나타냅니다.

Blob 가져오기Blob 속성 가져오기(REST API) 작업의 응답에는 content-disposition 헤더가 포함됩니다.

Origin

선택적 요소입니다. 요청을 실행한 원본을 지정합니다. 이 헤더가 있으면 응답에 크로스-원본 자원 공유 헤더가 생성됩니다. 자세한 내용은 Azure 저장소 서비스에 대한 CORS(크로스-원본 자원 공유) 지원을 참조하세요.

x-ms-client-request-id

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

이 작업은 또한 지정된 조건이 충족될 경우에만 blob을 기록하는 조건부 헤더 사용을 지원합니다. 자세한 내용은 Blob 서비스 작업에 대한 조건부 헤더 지정를 참조하세요.

다음 표에서는 페이지 blob에 대한 작업에 적용할 수 있는 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

x-ms-blob-content-length: bytes

페이지 blob의 경우 필수입니다. 이 헤더는 페이지 blob의 최대 크기(1TB)를 지정합니다. 페이지 blob 크기는 512바이트 경계로 정렬되어야 합니다.

블록 blob에 대해 이 헤더가 지정된 경우 Blob 서비스는 오류 코드 400(잘못된 요청)을 반환합니다.

x-ms-blob-sequence-number: <num>

선택적 요소입니다. 페이지 blob에 대해서만 설정됩니다. 시퀀스 번호는 요청 추적을 위해 사용할 수 있는 사용자 제어 값입니다. 시퀀스 번호 값은 0에서 2^63 - 1 사이여야 합니다. 기본값은 0입니다.

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

페이지 blob의 경우 요청 본문이 비어 있습니다.

다음 예에서는 블록 Blob을 만드는 요청을 보여줍니다.

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:33:355 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-content-disposition: attachment; filename="fname.ext"
x-ms-blob-type: BlockBlob
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 11

Request Body:
hello world

이 예제 요청은 페이지 Blob을 만들고 해당 최대 크기를 1024바이트로 지정합니다. 페이지 blob에 콘텐츠를 추가하려면 페이지 배치(REST API)를 호출해야 합니다.

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:41:55 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-type: PageBlob
x-ms-blob-content-length: 1024
x-ms-blob-sequence-number: 0
Authorization: SharedKey 
Origin: http://contoso.com
Vary: Origin
myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 0

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

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

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

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

 

응답 헤더 설명

ETag

ETag에는 클라이언트가 PUT 요청 헤더를 사용하여 조건부 If-Match 작업을 수행하는 데 사용할 수 있는 값이 포함됩니다. 요청 버전이 2011-08-18 이상이면 ETag 값이 따옴표로 표시됩니다.

Last-Modified

Blob을 마지막으로 수정한 날짜/시간입니다. 날짜 형식은 RFC 1123을 따릅니다. 자세한 내용은 헤더의 날짜/시간 값 표현을 참조하세요.

blob의 메타 데이터 또는 속성에 대한 업데이트를 포함하여 blob에 대해 쓰기 작업을 수행할 때마다 blob의 마지막 수정 시간이 변경됩니다.

Content-MD5

이 헤더는 클라이언트가 메시지 콘텐츠의 무결성을 확인할 수 있도록 블록 blob에 대해 반환됩니다. 반환된 Content-MD5 값은 Blob 서비스에서 계산됩니다. 2012-02-12 버전 이상에서는 요청에 Content-MD5 또는 x-ms-blob-content-md5 헤더가 포함되지 않더라도 이 헤더가 반환됩니다.

x-ms-request-id

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

x-ms-version

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

Date

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

Access-Control-Allow-Origin

요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다. 일치할 경우 이 헤더는 원본 요청 헤더의 값을 반환합니다.

Access-Control-Expose-Headers

요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다. 클라이언트 또는 요청 실행자에 노출될 응답 헤더의 목록을 반환합니다.

Access-Control-Allow-Credentials

요청에 Origin 헤더가 포함되고 CORS가 모든 원본을 허용하지 않는 일치 규칙과 함께 설정된 경우 반환됩니다. 이 헤더는 true로 설정됩니다.

없음.

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date: Wed, 23 Oct 2013 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Wed, 23 Oct 2013 22:30:15 GMT
Access-Control-Allow-Origin: http://contoso.com
Access-Control-Expose-Headers: Content-MD5
Access-Control-Allow-Credentials: True
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

이 작업은 계정 소유자 및 이 blob 또는 해당 컨테이너에 쓸 수 있는 권한이 있는 공유 액세스 서명을 가진 모든 클라이언트가 호출할 수 있습니다.

Blob을 만들 때는 블록 blob 또는 페이지 blob인지를 먼저 지정해야 합니다. Blob을 만든 후에는 삭제하고 다시 만들지 않는 한 blob 유형을 변경할 수 없습니다.

새로운 페이지 Blob을 만들려면 먼저 Put Blob를 호출하여 Blob을 초기화하고 해당 크기를 최대 1TB까지 지정합니다. 페이지 Blob을 만들 때 요청 본문에 콘텐츠를 포함하지 마세요. Blob을 만든 후에는 페이지 배치(REST API)를 호출하여 blob에 콘텐츠를 추가하거나 수정합니다.

블록 blob의 최대 업로드 크기는 64MB입니다. blob가 64MB보다 크면 이를 블록 집합으로 업로드해야 합니다. 자세한 내용은 블록 배치(REST API)블록 목록 배치(REST API) 작업을 참조하세요. Blob을 블록 집합으로 업로드할 경우에는 Put Blob를 호출할 필요가 없습니다.

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

기존 Blob을 동일한 이름으로 덮어쓰기 위해 Put Blob를 호출해도 원래 blob과 연결된 모든 스냅숏은 보존됩니다. 연결된 스냅숏을 제거하려면 Blob 삭제를 먼저 호출한 후 Put Blob를 호출하여 Blob을 다시 만듭니다.

blob에는 표준 HTTP 헤더와 연결된 값을 저장하는 데 사용할 수 있는 사용자 지정 속성(헤더를 통해 설정)이 있습니다. 이러한 값은 이후에 Blob 속성 가져오기(REST API)를 호출하여 읽거나 Blob 속성 설정를 호출하여 수정할 수 있습니다. 사용자 지정 속성 헤더 및 해당 표준 HTTP 헤더는 다음 표에 나열되어 있습니다.

 

HTTP 헤더 사용자 지정 blob 속성 헤더

Content-Type

x-ms-blob-content-type

Content-Encoding

x-ms-blob-content-encoding

Content-Language

x-ms-blob-content-language

Content-MD5

x-ms-blob-content-md5

Cache-Control

x-ms-blob-cache-control

blob에 이러한 속성 값을 유지하는 설정에 대한 의미 체계는 다음과 같습니다.

  • x-ms-blob 접두사에 표시된 대로 클라이언트가 사용자 지정 속성 헤더를 지정할 경우 이 값이 blob에 저장됩니다.

  • 클라이언트가 표준 HTTP 헤더를 지정하지만 사용자 지정 속성 헤더는 지정하지 않을 경우, blob과 연결된 해당 사용자 지정 속성에 값이 저장되고 Get Blob Properties에 대한 호출로 값이 반환됩니다. 예를 들어 클라이언트가 요청에 Content-Type 헤더를 설정하면 그 값이 blob의 x-ms-blob-content-type 속성에 저장됩니다.

  • 클라이언트가 표준 HTTP 헤더와 해당 속성 헤더를 동일한 요청에 설정하면 PUT 요청에서 표준 HTTP 헤더에 대해 제공된 값이 사용되지만 사용자 지정 속성 헤더에 대해 지정된 값이 blob에 유지되어 이후 GET 요청으로 반환됩니다.

blob에 활성 임대가 포함된 경우 클라이언트가 Blob을 덮어쓰려면 요청에 유효한 임대 ID를 지정해야 합니다. 클라이언트가 임대 ID를 지정하지 않거나 잘못된 임대 ID를 지정할 경우 Blob 서비스가 상태 코드 412(전제 조건 실패)를 반환합니다. 클라이언트가 임대 ID를 지정하지만 blob에 활성 임대가 없는 경우에도 Blob 서비스가 상태 코드 412(전제 조건 실패)를 반환합니다. 클라이언트가 아직 존재하지 않는 blob에 대한 임대 ID를 지정하는 경우, Blob 서비스는 2013-08-15 이상 버전에 대해 수행된 요청의 경우 상태 코드 412(전제 조건 실패)를 반환하고 이전 버전의 경우 상태 코드 201(만들어짐)을 반환합니다.

Put Blob 작업으로 활성 임대가 포함된 기존 Blob을 덮어쓴 경우에는 임대가 만료되거나 해제될 때까지 업데이트된 blob에 지속됩니다.

Put Blob 작업을 완료하는 데 허용된 시간은 MB당 10분입니다. 작업에 평균적으로 MB당 10분 이상의 시간이 소요되면 해당 작업이 시간 초과됩니다.

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2015 Microsoft