루트 컨테이너 작업
루트 컨테이너는 저장소 계정에 대한 기본 컨테이너 역할을 합니다. 저장소 계정당 하나의 루트 컨테이너를 보유할 수 있습니다. 루트 컨테이너는 명시적으로 생성되어야 하며 이름을 $root
로 지정해야 합니다.
루트 컨테이너에 저장된 Blob는 루트 컨테이너 이름을 참조하지 않고 주소를 지정할 수 있으므로 저장소 계정 계층의 최상위 수준에서 Blob 주소를 정할 수 있습니다. 예를 들어 루트 컨테이너에 있는 Blob을 참조할 수 있는 방법은 다음과 같습니다.
https://myaccount.blob.core.windows.net/mywebpage.html
루트 컨테이너 관리
저장소 계정에서 루트 컨테이너를 사용하려면 $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
x-ms-blob-public-access: container
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=
또한 더 이상 필요하지 않은 루트 컨테이너는 삭제할 수 있습니다.
다른 컨테이너와 같이 루트 컨테이너에 익명 공용 액세스를 제공할 수 있습니다. 컨테이너를 만들 때 헤더를 x-ms-blob-public-access
설정하거나 컨테이너 ACL이 이미 있는 후 Set Container ACL 을 호출하여 컨테이너를 공용으로 만들 수 있습니다. 자세한 내용은 컨테이너 및 Blob에 대한 액세스 제한 을 참조하세요.
루트 컨테이너가 있는 경우 스토리지 계정에 대해 컨테이너 나열 작업을 수행할 때 표시됩니다.
루트 컨테이너에 대해 Blob 나열 작업을 수행하면 반환된 Blob의 리소스 URL에 루트 컨테이너가 표시되지 않습니다. 다음 요청 구문에서는 루트 컨테이너에 대해 List Blobs
를 호출하는 방법을 보여줍니다.
GET https://myaccount.blob.core.windows.net/$root?restype=container&comp=list HTTP/1.1
중요
루트 컨테이너의 blob는 이름에 슬래시(/)를 포함할 수 없습니다.
예제
다음 예에서는 루트 컨테이너를 포함하여 컨테이너 및 blob 리소스의 사용 방법을 보여줍니다.
GET 작업
저장소 계정에 컨테이너를 나열하려면:
GET https://myaccount.blob.core.windows.net/?comp=list
컨테이너의 속성을 가져오려면:
GET/HEAD https://myaccount.blob.core.windows.net/mycontainer?restype=container
mycontainer
라는 컨테이너에 있는 blob를 나열하려면:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list
루트 컨테이너에 있는 blob를 나열하려면:
GET https://myaccount.blob.core.windows.net/$root?restype=container&comp=list
myfile
라는 컨테이너에서 mycontainer
이라는 blob를 읽으려면:
GET https://myaccount.blob.core.windows.net/mycontainer/myfile
루트 컨테이너에서 myphoto
라는 blob를 읽으려면:
GET https://myaccount.blob.core.windows.net/myphoto
다음과 같이 명시적으로 루트 컨테이너를 참조할 수도 있습니다.
GET https://myaccount.blob.core.windows.net/$root/myphoto
루트 컨테이너에 있는 blob에서 blob 메타데이터를 읽으려면:
GET https://myaccount.blob.core.windows.net/myphoto?comp=metadata
다음과 같이 명시적으로 루트 컨테이너를 참조할 수도 있습니다.
GET https://myaccount.blob.core.windows.net/$root/myphoto?comp=metadata
참고
루트 컨테이너에서 blob를 참조할 때 마지막 슬래시(/)를 포함하지 않도록 주의하십시오. 예를 들어 다음과 같은 URL을 사용하면 상태 코드 400(잘못된 요청)이 나타납니다.
https://myaccount.blob.core.windows.net/myblob/
위 예에서 Blob 서비스는 컨테이너 이름을 myblob
라고 인식하고 마지막 슬래시 다음에 blob 이름이 있을 것으로 예상합니다. 이 요청은 Blob 이름이 누락된 잘못된 형식을 사용합니다.
다음 URL은 루트 컨테이너에 있는 blob에서 수행하는 작업에 대해 유효합니다.
https://myaccount.blob.core.windows.net/myblob
PUT 작업
mycontainer
라는 컨테이너를 만들려면:
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container
루트 컨테이너에서 myblob
라는 blob를 만들려면:
PUT https://myaccount.blob.core.windows.net/myblob
다음과 같이 명시적으로 루트 컨테이너를 지정할 수도 있습니다.
PUT https://myaccount.blob.core.windows.net/$root/myblob
myblob
컨테이너에서 mycontainer
라는 blob를 만들려면:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob
photos/myphoto
컨테이너에서 mycontainer
라는 blob를 만들려면:
PUT https://myaccount.blob.core.windows.net/mycontainer/photos/myphoto
루트 컨테이너에서 라는 myblob
Blob에 메타데이터를 설정하려면 다음을 수행합니다.
PUT https://myaccount.blob.core.windows.net/myblob?comp=metadata
DELETE 작업
mycontainer
라는 컨테이너를 삭제하려면:
DELETE https://myaccount.blob.core.windows.net/mycontainer?restype=container
루트 컨테이너를 삭제하려면:
DELETE https://myaccount.blob.core.windows.net/$root?restype=container
루트 컨테이너에서 myblob
라는 blob를 삭제하려면:
DELETE https://myaccount.blob.core.windows.net/myblob
다음과 같이 명시적으로 루트 컨테이너를 지정할 수도 있습니다.
DELETE https://myaccount.blob.core.windows.net/$root/myblob
참고 항목
Blob 서비스 리소스에 대한 HTTP 작업
컨테이너, BLOB, 메타데이터 이름 명명 및 참조
Azure Storage 서비스에 대한 버전 관리