컨테이너, Blob 및 메타데이터 이름 지정 및 참조
이 항목에서는 컨테이너, Blob, 메타데이터 및 스냅샷의 이름을 지정하고 참조하는 방법을 설명합니다. 스토리지 계정에는 컨테이너가 0개 이상 포함될 수 있습니다. 컨테이너에는 속성, 메타데이터 및 0개 이상의 Blob이 포함됩니다. 계정에 계층 구조 네임스페이스가 있는 경우 컨테이너에는 0개 이상의 디렉터리도 포함될 수 있으며 해당 디렉터리에 Blob이 0개 이상 포함될 수 있습니다. Blob은 이진 데이터, 속성 및 메타데이터로 구성된 단일 엔터티입니다.
리소스 이름
컨테이너 또는 Blob을 참조하는 URI는 고유해야 합니다. 모든 계정 이름은 고유하기 때문에 두 계정에는 동일한 이름의 컨테이너가 있을 수 있습니다. 그러나 지정된 스토리지 계정 내에서 모든 컨테이너에는 고유한 이름이 있어야 합니다. 지정된 컨테이너 내의 모든 Blob에도 해당 컨테이너 내에 고유한 이름이 있어야 합니다.
명명 규칙을 위반하는 이름으로 컨테이너 또는 Blob을 만들려고 하면 요청이 상태 코드 400(잘못된 요청)으로 실패합니다.
Blob 및 컨테이너 이름은 URL 내의 Blob 서비스에 전달됩니다. 특정 문자는 UTF-8(기본 설정) 또는 MBCS를 사용하여 URL에 표시되도록 백분율로 인코딩되어야 합니다. 이 인코딩은 Azure Storage 클라이언트 라이브러리를 사용할 때 자동으로 발생합니다. 그러나 인코딩된 경우에도 URL 경로에 유효하지 않은 특정 문자가 있습니다. 이러한 문자가 Blob 또는 컨테이너 이름에 표시되면 요청이 실패할 수 있습니다. 이러한 문자 목록은 컨테이너 또는 blob 이름사용하지 않는
\uE000같은 코드 포인트는 NTFS 파일 이름에서 유효하지만 유니코드 문자는 유효하지 않으므로 사용할 수 없습니다. 또한 컨트롤 문자(0x1F, \u0081등의 0x00)와 같은 일부 ASCII 또는 유니코드 문자도 허용되지 않습니다.
HTTP/1.1에서 유니코드 문자열을 제어하는 추가 규칙은 RFC 2616, 섹션 2.2: 기본 규칙 및 RFC 3987참조하세요.
컨테이너 이름
컨테이너 이름은 다음 명명 규칙을 준수하는 유효한 DNS 이름이어야 합니다.
컨테이너 이름은 문자 또는 숫자로 시작하거나 끝나야 하며 문자, 숫자 및 하이픈/빼기(-) 문자만 포함할 수 있습니다.
모든 하이픈/빼기(-) 문자는 바로 앞에 와 문자 또는 숫자 뒤에 와야 합니다. 컨테이너 이름에는 연속 하이픈이 허용되지 않습니다.
컨테이너 이름의 모든 문자는 소문자여야 합니다.
컨테이너 이름은 3~63자여야 합니다.
디렉터리 이름
계정에 계층 구조 네임스페이스가 있는 경우 디렉터리 이름은 다음 명명 규칙을 따라야 합니다.
디렉터리 이름에는 문자 조합이 포함될 수 있습니다.
디렉터리 이름은 하나 이상의 문자여야 하며 1,024자를 초과할 수 없습니다.
디렉터리 이름은 대/소문자를 구분합니다.
예약된 URL 문자를 올바르게 이스케이프해야 합니다.
메모
점(.), 슬래시(/), 백슬래시(\) 또는 시퀀스 또는 둘의 조합으로 끝나는 디렉터리 이름을 사용하지 않습니다. 경로 세그먼트는 점(.)으로 끝나야 합니다.
Blob 이름
Blob 이름은 다음 명명 규칙을 따라야 합니다. 이러한 규칙은 달리 명시되지 않는 한 계층 구조 네임스페이스가 있는 계정의 Blob에도 적용됩니다.
Blob 이름에는 문자 조합이 포함될 수 있습니다.
Blob 이름은 하나 이상의 문자 길이여야 하며 Azure Storage의 Blob에 대해 1,024자를 초과할 수 없습니다.
Azure Storage 에뮬레이터는 최대 256자까지 Blob 이름을 지원합니다. 자세한 내용은 개발 및 테스트Azure Storage 에뮬레이터를 사용합니다.
Blob 이름은 대/소문자를 구분합니다.
예약된 URL 문자를 올바르게 이스케이프해야 합니다.
Blob 이름을 구성하는 경로 세그먼트 수에는 제한이 있습니다. 경로 세그먼트는 디렉터리 또는 가상 디렉터리에 해당하는 연속 구분 기호 문자(예: 슬래시
/
) 사이의 문자열입니다. 다음 경로 세그먼트 제한 사항은 Blob 이름에 적용됩니다.- 스토리지 계정 계층 구조 네임스페이스를 사용하도록 설정하지 경우 Blob 이름을 구성하는 경로 세그먼트 수는 254를 초과할 수 없습니다.
- 스토리지 계정에 계층 구조 네임스페이스가 사용하도록 설정된 경우 Blob 이름을 구성하는 경로 세그먼트 수는 63을 초과할 수 없습니다(계정 이름 및 컨테이너 이름에 대한 경로 세그먼트 포함).
메모
점(.), 슬래시(/), 백슬래시(\) 또는 시퀀스 또는 둘의 조합으로 끝나는 Blob 이름을 사용하지 않습니다. 경로 세그먼트는 점(.)으로 끝나야 합니다.
기본적으로 Blob 서비스는 계층 구조 체계가 아닌 플랫 스토리지 체계를 기반으로 합니다. 그러나 Blob 이름 내에 문자 또는 문자열 구분 기호를 지정하여 가상 계층을 만들 수 있습니다. 예를 들어 다음 목록에는 유효하고 고유한 Blob 이름이 표시됩니다. 문자열은 Blob 이름과 동일한 컨테이너의 가상 디렉터리 이름으로 모두 유효할 수 있습니다.
/a
/a.txt
/a/b
/a/b.txt
Blob을 열거할 때 구분 기호 문자를 활용할 수 있습니다.
메타데이터 키 및 값 이름
컨테이너 또는 Blob 리소스에 대한 메타데이터는 리소스와 연결된 이름-값 쌍으로 저장됩니다. 메타데이터 키 이름은 다음 명명 규칙을 준수해야 합니다.
문자 또는 밑줄로 시작해야 합니다.
다음 문자는 문자, 숫자 또는 밑줄일 수 있습니다.
메타데이터 키 이름은 유효한 ASCII여야 합니다.
메타데이터 값 이름도 유효한 ASCII여야 합니다. 메타데이터 이름은 만들어진 대/소문자를 유지하지만 설정하거나 읽을 때는 대/소문자를 구분하지 않습니다. 이름이 같은 두 개 이상의 메타데이터 헤더가 리소스에 대해 제출되면 Blob 서비스는 상태 코드 400(잘못된 요청)을 반환합니다.
리소스 URI 구문
각 리소스에는 리소스 자체를 참조하는 해당 기본 URI가 있습니다.
스토리지 계정의 경우 기본 URI에는 계정 이름만 포함됩니다.
https://myaccount.blob.core.windows.net
컨테이너의 경우 기본 URI에는 계정 이름과 컨테이너 이름이 포함됩니다.
https://myaccount.blob.core.windows.net/mycontainer
Blob의 경우 기본 URI에는 계정 이름, 컨테이너 이름 및 Blob 이름이 포함됩니다.
https://myaccount.blob.core.windows.net/mycontainer/myblob
스토리지 계정에는 URI에서 생략할 수 있는 기본 컨테이너인 루트 컨테이너가 있을 수 있습니다. 루트 컨테이너의 Blob은 컨테이너 이름을 지정하지 않고 참조하거나 루트 컨테이너를 해당 이름($root
)으로 명시적으로 참조할 수 있습니다. 자세한 내용은 루트 컨테이너
https://myaccount.blob.core.windows.net/myblob
https://myaccount.blob.core.windows.net/$root/myblob
Blob 스냅샷
스냅샷은 스냅샷을 만들 때와 같이 저장된 Blob의 읽기 전용 버전입니다. 스냅샷을 사용하여 Blob의 백업 또는 검사점을 만들 수 있습니다. 스냅샷 Blob 이름에는 기본 Blob URI와 스냅샷을 만든 시간을 나타내는 날짜-시간 값이 포함됩니다.
예를 들어 Blob에 다음 URI가 있다고 가정합니다.
https://myaccount.blob.core.windows.net/mycontainer/myblob
해당 Blob의 스냅샷에 대한 URI는 다음과 같이 구성됩니다.
https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
컨테이너 또는 Blob 이름에는 유니코드 문자를 사용하지 않는 것이 좋습니다.
다음 표에서는 컨테이너 또는 Blob 이름에 사용하지 않는 유니코드 문자 목록을 제공합니다. 이 목록의 다른 문자와 함께 사용할 경우 이러한 문자는 UTF-8 또는 MBCS 디코딩에 실패하여 Blob 서비스에 대한 요청이 실패할 수 있습니다.
유니코드 문자 |
---|
U+0080 |
U+0082 |
U+0083 |
U+0084 |
U+0085 |
U+0086 |
U+0087 |
U+0088 |
U+0089 |
U+008A |
U+008B |
U+008C |
U+008E |
U+0091 |
U+0092 |
U+0093 |
U+0094 |
U+0095 |
U+0096 |
U+0097 |
U+0098 |
U+0099 |
U+009A |
U+009B |
U+009C |
U+009E |
U+009F |
U+FDD1 |
U+FDD2 |
U+FDD3 |
U+FDD4 |
U+FDD5 |
U+FDD6 |
U+FDD7 |
U+FDD8 |
U+FDD9 |
U+FDDA |
U+FDDB |
U+FDDC |
U+FDDE |
U+FDDF |
U+FDE0 |
U+FDE1 |
U+FDE2 |
U+FDE3 |
U+FDE4 |
U+FDE5 |
U+FDE6 |
U+FDE7 |
U+FDE8 |
U+FDE9 |
U+FDEA |
U+FDEB |
U+FDEC |
U+FDED |
U+FDEE |
U+FDEF |
U+FFF0 |
U+FFF1 |
U+FFF2 |
U+FFF3 |
U+FFF4 |
U+FFF5 |
U+FFF6 |
U+FFF7 |
U+FFF8 |
U+FFF9 |
U+FFFA |
U+FFFB |
U+FFFC |
U+FFFD |
U+FFFE |
U+FFFF |
U+1FFFE |
U+1FFFF |
U+2FFFE |
U+2FFFF |
U+3FFFE |
U+3FFFF |
U+5FFFE |
U+5FFFF |
U+6FFFE |
U+6FFFF |
U+7FFFE |
U+7FFFF |
U+9FFFE |
U+9FFFF |
U+AFFFE |
U+AFFFF |
U+BFFFE |
U+BFFFF |
U+DFFFE |
U+DFFFF |
U+EFFFE |
U+EFFFF |
U+FFFFE |
U+FFFFF |
참고 항목
- Blob Storage 서비스 사용하는 방법
- Blob 리소스 열거하는
- Blob Service 개념
- 루트 컨테이너 작업
- 스냅샷 Blob