Blob 배치

작업은 Put Blob 새 블록, 페이지 또는 추가 Blob을 만들거나 기존 블록 Blob의 콘텐츠를 업데이트합니다. 작업은 Put Blob 동일한 이름의 기존 Blob의 모든 내용을 덮어씁니다.

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

버전 2015-02-21 이상에서만 추가 Blob을 만들 수 있습니다.

페이지 Blob을 만들거나 추가 Blob을 만드는 에 대한 호출 Put Blob 은 Blob만 초기화합니다. Blob이 이미 있는 경우 콘텐츠가 지워질 것입니다. 페이지 Blob에 콘텐츠를 추가하려면 페이지 배치 작업을 호출합니다. 추가 Blob에 콘텐츠를 추가하려면 블록 추가 작업을 호출합니다.

요청

다음과 같이 요청을 생성할 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

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

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

URI 매개 변수

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

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

요청 헤더(모든 Blob 형식)

모든 Blob 형식에 대한 필수 및 선택적 요청 헤더는 다음 표에 설명되어 있습니다.

요청 헤더 Description
Authorization 필수 사항입니다. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
Date 또는 x-ms-date 필수 사항입니다. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
x-ms-version 모든 권한 있는 요청에 필요합니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
Content-Length 필수 사항입니다. 요청의 길이입니다.

페이지 Blob 또는 추가 Blob의 경우 Blob 배치는 Blob 을 초기화하는 데만 사용되므로 이 헤더의 값을 0으로 설정해야 합니다. 기존 페이지 Blob에 콘텐츠를 쓰려면 페이지 배치를 호출합니다. 추가 Blob에 콘텐츠를 쓰려면 Append Block을 호출합니다.
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 Storage는 MD5 해시를 생성합니다.

Blob 가져오기, Blob 속성 가져오기Blob 나열의 결과에는 MD5 해시가 포함됩니다.
x-ms-content-crc64 선택 사항입니다. Blob 콘텐츠의 CRC64 해시입니다. 이 해시는 전송 중 blob의 무결성을 확인하는 데 사용됩니다. 이 헤더를 지정하면 스토리지 서비스는 전송된 해시에 대해 도착한 해시를 확인합니다. 두 해시가 일치하지 않으면 작업이 실패하고 오류 코드 400(잘못된 요청)이 표시됩니다. 이 헤더는 버전 02-02-2019 이상에서 지원됩니다.

Content-MD5 및 x-ms-content-crc64 헤더가 모두 있으면 요청이 400(잘못된 요청)으로 실패합니다.
Cache-Control 선택 사항입니다. Blob Storage는 이 값을 저장하지만 사용하거나 수정하지 않습니다.
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 ¦ AppendBlob> 필수 사항입니다. 만들 Blob 유형(블록 Blob, 페이지 Blob 또는 추가 Blob)을 지정합니다. 추가 Blob 만들기 지원은 버전 2015-02-21 이상에서만 사용할 수 있습니다.
x-ms-meta-name:value 선택 사항입니다. blob과 메타데이터로 연결된 이름-값 쌍입니다.

참고: 버전 2009-09-19를 기준으로 메타데이터 이름은 C# 식별자에 대한 명명 규칙을 준수해야 합니다.
x-ms-encryption-scope 선택 사항입니다. 요청 내용을 암호화하는 데 사용할 암호화 scope 나타냅니다. 이 헤더는 버전 2019-02-02 이상에서 지원됩니다.
x-ms-encryption-context 선택 사항입니다. 기본값은 "Empty"입니다. 값이 설정되면 Blob 시스템 메타데이터가 설정됩니다. 최대 길이-1024. 계정에 대해 계층 구조 네임스페이스를 사용하도록 설정한 경우에만 유효합니다. 이 헤더는 버전 2021-08-06 이상에서 지원됩니다.
x-ms-tags 선택 사항입니다. Blob에서 지정된 쿼리 문자열로 인코딩된 태그를 설정합니다. 추가 정보는 비고를 참조하세요. 버전 2019-12-12 이상에서 지원됩니다.
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 속성 가져오기 작업의 응답에는 헤더가 content-disposition 포함됩니다.
Origin 선택 사항입니다. 요청을 실행한 원본을 지정합니다. 이 헤더가 있으면 응답에 CORS(크로스-원본 자원 공유) 헤더가 생성됩니다. 자세한 내용은 Azure Storage 서비스에 대한 CORS 지원을 참조하세요.
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 분석 로그에 기록되는 1키비바이트(KiB) 문자 제한을 사용하여 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 스토리지 분석 로깅 정보를 참조하세요.
x-ms-access-tier 선택 사항입니다. Blob에 설정할 계층입니다. 버전 2017-04-17 이상만 사용하는 Premium Storage 계정의 페이지 Blob의 경우 페이지 Blob 지원 계층의 전체 목록은 VM(가상 머신)용 고성능 Premium Storage 및 관리 디스크를 참조하세요. 블록 Blob의 경우 버전 2018-11-09 이상에서만 Blob Storage 또는 범용 v2 계정에서 지원됩니다. 블록 Blob 계층에 유효한 값은 , Cool, ColdArchive입니다Hot. 참고: Cold 계층은 버전 2021-12-02 이상에서 지원됩니다. 블록 Blob 계층화에 대한 자세한 내용은 핫, 쿨 및 보관 스토리지 계층을 참조하세요.
x-ms-immutability-policy-until-date 버전 2020-06-12 이상. Blob에 설정할 보존 기간까지 의 날짜를 지정합니다. Blob이 수정되거나 삭제되지 않도록 보호할 수 있는 날짜입니다. RFC1123 형식을 따릅니다.
x-ms-immutability-policy-mode 버전 2020-06-12 이상. Blob에서 설정할 불변성 정책 모드를 지정합니다. 유효한 값은 unlockedlocked입니다. 를 사용하면 unlocked사용자는 보존 기간까지의 날짜를 늘리거나 줄이면 정책을 변경할 수 있습니다. 를 사용하면 locked이러한 작업이 금지됩니다.
x-ms-legal-hold 버전 2020-06-12 이상. Blob에 설정할 법적 보존을 지정합니다. 유효한 값은 truefalse입니다.
x-ms-expiry-option 선택 사항입니다. 버전 2023-08-03 이상. 요청에 대한 만료 날짜 옵션을 지정합니다. 자세한 내용은 ExpiryOption을 참조하세요. 이 헤더는 계층 구조 네임스페이스가 활성화된 계정에 유효합니다.
x-ms-expiry-time 선택 사항입니다. 버전 2023-08-03 이상. Blob이 만료되도록 설정된 시간을 지정합니다. 만료 날짜의 형식은 에 따라 x-ms-expiry-option다릅니다. 자세한 내용은 ExpiryOption을 참조하세요. 이 헤더는 계층 구조 네임스페이스가 활성화된 계정에 유효합니다.

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

요청 헤더(페이지 Blob만 해당)

페이지 Blob의 작업에만 적용되는 요청 헤더는 다음 표에 설명되어 있습니다.

요청 헤더 Description
x-ms-blob-content-length: bytes 페이지 blob의 경우 필수입니다. 이 헤더는 페이지 Blob의 최대 크기(최대 8tiB)를 지정합니다. 페이지 blob 크기는 512바이트 경계로 정렬되어야 합니다.

이 헤더가 블록 Blob 또는 추가 Blob에 대해 지정된 경우 Blob Storage는 상태 코드 400(잘못된 요청)을 반환합니다.
x-ms-blob-sequence-number: <num> 선택 사항입니다. 페이지 blob에 대해서만 설정됩니다. 시퀀스 번호는 요청 추적을 위해 사용할 수 있는 사용자 제어 값입니다. 시퀀스 번호의 값은 0에서 2^63 - 1이어야 합니다. 기본값은 0입니다.
x-ms-access-tier 버전 2017-04-17 이상. Premium Storage 계정의 페이지 Blob에만 해당합니다. Blob에서 설정할 계층을 지정합니다. 지원되는 계층의 전체 목록은 VM용 고성능 Premium Storage 및 관리 디스크를 참조하세요.
x-ms-client-request-id 이 헤더를 사용하여 요청 및 해당 응답 문제를 해결할 수 있습니다. 이 헤더의 값 x-ms-client-request-id 은 요청에 있고 값에 표시되는 ASCII 문자가 1,024자 이하인 경우 헤더 값과 같습니다. 헤더가 x-ms-client-request-id 요청에 없으면 응답에 표시되지 않습니다.

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

버전 2019-02-02를 기준으로 고객이 제공한 키로 Blob을 암호화하는 요청에 다음 헤더를 지정할 수 있습니다. 고객이 제공한 키(및 해당 헤더 집합)를 사용하여 암호화하는 것은 선택 사항입니다.

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

요청 본문

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

페이지 Blob 또는 추가 Blob의 경우 요청 본문이 비어 있습니다.

샘플 요청

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

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
x-ms-date: <date>  
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  
x-ms-expiry-option: RelativeToNow
x-ms-expiry-time: 30000
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=  
Content-Length: 11  
  
Request Body:  
hello world

이 샘플 요청은 페이지 Blob을 만들고 최대 크기를 1,024바이트로 지정합니다. 페이지 Blob에 콘텐츠를 추가하려면 페이지 배치를 호출해야 합니다.

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
x-ms-date: <date>  
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  

이 샘플 요청은 추가 Blob을 만듭니다. 추가 Blob에 콘텐츠를 추가하려면 Append Block을 호출해야 합니다.

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myappendblob HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
x-ms-date: <date>  
Content-Type: text/plain; charset=UTF-8  
x-ms-blob-type: AppendBlob  
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=  
Origin: http://contoso.com  
Vary: Origin  
Content-Length: 0  

응답

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

상태 코드

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

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

응답 헤더

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

응답 헤더 Description
ETag 클라이언트가 요청 헤더를 사용하여 조건 PUT 부 작업을 수행하는 데 사용할 수 있는 If-Match 값을 포함합니다. 요청 버전이 2011-08-18 이상인 경우 ETag 값은 따옴표로 묶입니다.
Last-Modified Blob이 마지막으로 수정된 날짜/시간입니다. 날짜 형식은 RFC 1123을 따릅니다. 자세한 내용은 머리글의 날짜/시간 값 표시를 참조하세요.

blob의 메타 데이터 또는 속성에 대한 업데이트를 포함하여 blob에 대해 쓰기 작업을 수행할 때마다 blob의 마지막 수정 시간이 변경됩니다.
Content-MD5 클라이언트가 메시지 콘텐츠의 무결성을 검사 수 있도록 블록 Blob에 대해 반환됩니다. 반환되는 값은 Content-MD5 Blob Storage에서 계산됩니다. 버전 2012-02-12 이상에서는 요청에 또는 x-ms-blob-content-md5 헤더가 포함되지 Content-MD5 않은 경우에도 이 헤더가 반환됩니다.
x-ms-content-crc64 클라이언트가 메시지 콘텐츠의 무결성을 검사 수 있도록 블록 Blob에 대해 반환됩니다. 반환되는 값은 x-ms-content-crc64 Blob Storage에서 계산됩니다. 이 헤더는 항상 버전 2019-02-02를 기준으로 반환됩니다.
x-ms-request-id 만들어진 요청을 고유하게 식별하며 이를 사용하여 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용된 Blob Storage 버전을 나타냅니다. 버전 2009-09-19 이상에 대해 수행한 요청에 대해 반환됩니다.
Date 서비스에서 생성된 UTC 날짜/시간 값으로, 응답이 시작된 시간을 나타냅니다.
Access-Control-Allow-Origin 요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다. 일치하는 항목이 있는 경우 이 헤더는 원본 요청 헤더의 값을 반환합니다.
Access-Control-Expose-Headers 요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다. 클라이언트 또는 요청 실행자에 노출될 응답 헤더의 목록을 반환합니다.
Access-Control-Allow-Credentials 요청에 헤더가 Origin 포함되고 CORS가 모든 원본을 허용하지 않는 일치 규칙으로 사용하도록 설정된 경우 반환됩니다. 이 헤더는 true로 설정됩니다.
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 이상. 클라이언트가 암호화 scope 사용하여 요청 내용이 성공적으로 암호화되도록 요청이 암호화 scope 사용하는 경우 반환됩니다.
x-ms-version-id: <DateTime> 버전 2019-12-12 이상. 이 헤더는 Blob을 고유하게 식별하는 불투명 DateTime 값을 반환합니다. 이 헤더의 값은 Blob의 버전을 나타내며 이후 요청에서 Blob에 액세스하는 데 사용할 수 있습니다.

응답 본문

없음

샘플 응답

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==  
x-ms-content-crc64: 77uWZTolTHU
Date: <date>  
ETag: "0x8CB171BA9E94B0B"  
Last-Modified: <date>  
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  
x-ms-version-id: <DateTime>  

권한 부여

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

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

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에 대한 액세스 권한 부여를 참조하세요.

사용 권한

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

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

설명

Blob을 만들 때 헤더 값을 x-ms-blob-type 지정하여 블록 Blob, 추가 Blob 또는 페이지 Blob인지 여부를 지정해야 합니다. Blob을 만든 후에는 Blob을 삭제하고 다시 만들지 않는 한 Blob의 형식을 변경할 수 없습니다.

다음 표에서는 서비스 버전별로 허용되는 최대 블록 및 Blob 크기에 대해 설명합니다.

서비스 버전 최대 블록 크기(를 통해 Put Block) 최대 Blob 크기(를 통해 Put Block List) 단일 쓰기 작업을 통한 최대 Blob 크기(를 통해 Put Blob)
버전 2019-12-12 이상 4,000메비바이트(MiB) 약 190.7TiB(4,000MiB × 50,000블록) 5,000MiB
버전 2016-05-31~2019-07-07 100MiB 약 4.75TiB(100MiB × 50,000블록) 256MiB
2016-05-31 이전 버전 4MiB 약 195GiB(4MiB × 50,000개 블록) 64MiB

해당 서비스 버전에 허용되는 최대 크기보다 큰 블록 Blob 또는 8TiB보다 큰 페이지 Blob을 업로드하려고 하면 서비스는 상태 코드 413(요청 엔터티가 너무 큼)을 반환합니다. 또한 Blob Storage는 허용되는 최대 Blob 크기를 포함하여 응답의 오류에 대한 추가 정보를 바이트 단위로 반환합니다.

새 페이지 Blob을 만들려면 먼저 를 호출 Put Blob하여 Blob을 초기화한 다음 최대 크기(최대 8TiB)를 지정합니다. 페이지 Blob을 만들 때 요청 본문에 콘텐츠를 포함하지 마세요. Blob을 만든 후 페이지 배치 를 호출하여 Blob에 콘텐츠를 추가하거나 수정합니다.

새 추가 Blob을 만들려면 를 호출 Put Blob 하여 콘텐츠 길이가 0바이트인 Blob을 만듭니다. 추가 Blob을 만든 후 블록 추가 를 호출하여 끝에 콘텐츠를 추가합니다.

를 호출 Put Blob 하여 동일한 이름의 기존 Blob을 덮어쓰는 경우 원래 Blob과 연결된 모든 스냅샷이 유지됩니다. 연결된 스냅샷을 제거하려면 먼저 Blob 삭제를 호출한 다음 를 호출 Put Blob 하여 Blob을 다시 만듭니다.

Blob 사용자 지정 속성

Blob에는 표준 HTTP 헤더와 연결된 값을 저장하는 데 사용할 수 있는 사용자 지정 속성(헤더를 통해 설정)이 있습니다. 이후에 Blob 속성 가져오기를 호출하여 이러한 값을 읽거나 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 요청에 의해 반환됩니다.

헤더에 x-ms-tags 태그가 제공되면 쿼리 문자열로 인코딩되어야 합니다. 태그 키 및 값은 에 Set Blob Tags지정된 대로 명명 및 길이 요구 사항을 준수해야 합니다. 또한 헤더에는 x-ms-tags 최대 2kb의 태그가 포함될 수 있습니다. 더 많은 태그가 필요한 경우 Blob 태그 설정 작업을 사용합니다.

Blob에 활성 임대가 있는 경우 클라이언트는 Blob을 덮어쓰기 위해 요청에 유효한 임대 ID를 지정해야 합니다. 클라이언트가 임대 ID를 지정하지 않거나 잘못된 임대 ID를 지정하는 경우 Blob Storage는 상태 코드 412(사전 조건 실패)를 반환합니다. 클라이언트가 임대 ID를 지정하지만 Blob에 활성 임대가 없는 경우 Blob Storage는 상태 코드 412(사전 조건 실패)도 반환합니다. 클라이언트가 아직 존재하지 않는 Blob에 임대 ID를 지정하는 경우 Blob Storage는 버전 2013-08-15 이상에 대한 요청에 대해 상태 코드 412(사전 조건 실패)를 반환합니다. 2013-08-15 이전 버전의 경우 Blob Storage는 상태 코드 201(생성됨)을 반환합니다.

활성 임대가 있는 기존 Blob을 작업에 의해 Put Blob 덮어쓰는 경우 임대는 만료되거나 해제될 때까지 업데이트된 Blob에서 유지됩니다.

Put Blob 작업을 완료하려면 MiB당 10분이 허용됩니다. 작업이 MiB당 평균 10분보다 오래 걸리는 경우 작업 시간이 초과됩니다.

Blob 덮어쓰 archive 기가 실패하고 헤더가 제공되지 않으면 또는 cool Blob을 덮어쓰 hot 면 이전 Blob에서 계층이 x-ms-access-tier 상속됩니다.

ExpiryOption

다음 값을 헤더로 x-ms-expiry-option 보낼 수 있습니다. 이 헤더는 대/소문자를 구분하지 않습니다.

만료 옵션 Description
RelativeToNow 현재 시간을 기준으로 만료 날짜를 설정합니다. x-ms-expiry-time 는 현재 시간에서 경과할 시간(밀리초)으로 지정해야 합니다.
Absolute x-ms-expiry-time 는 RFC 1123 형식으로 절대 시간으로 지정해야 합니다.
NeverExpire Blob이 만료되지 않도록 설정하거나 현재 만료 날짜를 제거합니다. x-ms-expiry-time 을 지정하지 않아야 합니다.

Blob에서 만료 날짜를 설정하기 위한 의미 체계는 다음과 같습니다.

  • Set Expiry 는 디렉터리가 아닌 Blob에서만 설정할 수 있습니다.
  • Set ExpiryexpiryTime 은(는) 허용되지 않습니다.
  • ExpiryTime을 값Never으로 expiryOption 지정할 수 없습니다.

결제

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

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

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

추가 정보

Azure Storage에 대한 요청 권한 부여
상태 및 오류 코드
Blob 서비스 오류 코드
Blob 서비스 작업에 대한 시간 제한 설정