컨테이너 만들기

Create Container 작업은 지정된 계정으로 새 컨테이너를 만듭니다. 동일한 이름의 컨테이너가 이미 있으면 작업이 실패합니다.

컨테이너 리소스에는 해당 컨테이너의 메타데이터 및 속성이 포함됩니다. 컨테이너의 Blob 목록은 포함되지 않습니다.

요청

여기에 표시된 대로 요청을 생성할 Create Container 수 있습니다. HTTPS를 사용하는 것이 좋습니다. 컨테이너 이름은 소문자만 포함할 수 있으며 이러한 명명 규칙을 따라야 합니다. URL에서 myaccount 를 스토리지 계정의 이름으로 바꿉니다.

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

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

에뮬레이트된 스토리지 서비스에 대해 요청할 때 에뮬레이터 호스트 이름 및 Blob Storage 포트를 로 127.0.0.1:10000지정한 다음 에뮬레이트된 스토리지 계정 이름을 지정합니다.

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

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

URI 매개 변수

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

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

요청 헤더

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

요청 헤더 Description
Authorization 필수 사항입니다. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
Date 또는 x-ms-date 필수 사항입니다. 요청의 UCT(협정 세계시) 시간을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
x-ms-version 모든 권한 있는 요청에 필요합니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
x-ms-meta-name:value 선택 사항입니다. 컨테이너를 메타데이터로 연결하기 위한 이름-값 쌍입니다. 참고: 버전 2009-09-19를 기준으로 메타데이터 이름은 C# 식별자에 대한 명명 규칙을 준수해야 합니다.
x-ms-blob-public-access 선택 사항입니다. 컨테이너의 데이터에 공개적으로 액세스할 수 있는지 여부와 액세스 수준을 지정합니다. 가능한 값은 다음과 같습니다.

- container: 컨테이너 및 Blob 데이터에 대한 전체 공용 읽기 권한을 지정합니다. 클라이언트는 익명 요청을 통해 컨테이너 내의 Blob을 열거할 수 있지만 스토리지 계정 내에서 컨테이너를 열거할 수는 없습니다.
- blob: Blob에 대한 공용 읽기 액세스를 지정합니다. 이 컨테이너 내의 Blob 데이터는 익명 요청을 통해 읽을 수 있지만 컨테이너 데이터는 사용할 수 없습니다. 클라이언트는 익명 요청을 통해 컨테이너 내에서 Blob을 열거할 수 없습니다.

이 헤더가 요청에 포함되지 않은 경우 컨테이너 데이터는 계정 소유자에게 비공개입니다.
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1키비바이트(KiB) 문자 제한을 사용하여 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Blob Storage 모니터링을 참조하세요.

요청 헤더(암호화 범위)

버전 2019-02-02를 기준으로 요청에 다음 헤더를 지정하여 컨테이너에서 기본 암호화 scope 설정할 수 있습니다. 암호화 scope 설정하면 컨테이너에 업로드되는 모든 Blob을 암호화하는 데 자동으로 사용됩니다.

요청 헤더 Description
x-ms-default-encryption-scope 필수 사항입니다. 암호화 scope 컨테이너의 기본값으로 설정합니다.
x-ms-deny-encryption-scope-override 필수 사항입니다. 값은 true 또는 false합니다. 이 헤더를 설정하면 이 컨테이너에 true 업로드된 모든 Blob이 기본 암호화 scope 사용하도록 합니다. 이 헤더가 이면 클라이언트는 false기본 scope 아닌 암호화 scope 사용하여 Blob을 업로드할 수 있습니다.

요청 본문

없음

샘플 요청

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

응답

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

상태 코드

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

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

응답 헤더

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

응답 헤더 Description
ETag 컨테이너에 대한 ETag입니다. 요청 버전이 2011-08-18 이상인 경우 ETag 값은 따옴표로 묶입니다.
Last-Modified 컨테이너가 마지막으로 수정된 날짜와 시간을 반환합니다. 날짜 형식은 RFC 1123을 따릅니다. 자세한 내용은 헤더의 날짜/시간 값 표현을 참조하세요.

컨테이너 또는 해당 속성이나 메타데이터를 수정하는 모든 작업을 수행하면 마지막 수정 시간이 업데이트됩니다. blob에 대한 작업은 컨테이너의 마지막 수정 시간에 영향을 주지 않습니다.
x-ms-request-id 만들어진 요청을 고유하게 식별합니다. 이를 사용하여 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용되는 Blob Storage 버전을 나타냅니다. 이 헤더는 버전 2009-09-19 이상에 대해 수행된 요청에 대해 반환됩니다.
Date 서비스에서 생성된 UTC 날짜/시간 값으로, 응답이 시작된 시간을 나타냅니다.
x-ms-client-request-id 요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값은 요청에 있는 경우 헤더의 x-ms-client-request-id 값과 같으며 값에 표시되는 ASCII 문자가 1024자 이하입니다. 헤더가 x-ms-client-request-id 요청에 없으면 헤더가 응답에 표시되지 않습니다.

응답 본문

없음

샘플 응답

Response status:  
HTTP/1.1 201 Created  
  
Response headers:  
Transfer-Encoding: chunked  
Date: Sun, 25 Sep 2011 23:00:12 GMT  
ETag: “0x8CB14C3E29B7E82”  
Last-Modified: Sun, 25 Sep 2011 23:00:06 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

권한 부여

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

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

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

사용 권한

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

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

설명

컨테이너는 스토리지 계정 내에서 즉시 만들어집니다. 하나의 컨테이너를 다른 컨테이너 내에 중첩할 수 없습니다.

선택적으로 저장소 계정에 대한 기본 또는 루트 컨테이너를 만들 수 있습니다. 루트 컨테이너를 사용하면 컨테이너 이름을 참조하지 않고 저장소 계정 계층의 최상위로부터 blob를 참조할 수 있습니다.

저장소 계정에 루트 컨테이너를 추가하려면 $root라는 컨테이너를 만듭니다. 요청을 다음과 같이 생성합니다.

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/$root?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

요청에 하나 이상의 메타데이터 헤더를 포함하여 컨테이너를 만들 때 컨테이너에 대한 메타데이터를 지정할 수 있습니다. 메타데이터 헤더 형식은 x-ms-meta-name:value입니다.

가 호출될 때 Create Container 동일한 이름의 컨테이너가 삭제되는 경우 서버는 상태 코드 409(충돌)를 반환하고 컨테이너가 삭제되고 있음을 나타내는 추가 오류 정보를 제공합니다.

결제

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

작업 Storage 계정 유형 청구 범주
컨테이너 만들기 프리미엄 블록 Blob
표준 범용 v2
표준 범용 v1
컨테이너 작업 나열 및 만들기

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

추가 정보

Azure Storage에 대한 요청 권한 부여
상태 및 오류 코드
Blob Storage 오류 코드
이름 및 참조 컨테이너, Blob 및 메타데이터
Blob 리소스에 대한 속성 및 메타데이터 설정 및 검색
컨테이너 ACL 설정