컨테이너와 Blob, 메타데이터의 이름 지정 및 참조
이 항목에서는 컨테이너, Blob, 메타데이터 및 스냅숏의 명명 및 참조에 대해 설명합니다. 저장소 계정은 0개 이상의 컨테이너를 포함할 수 있습니다. 컨테이너에는 속성, 메타데이터 및 0개 이상의 Blob이 포함됩니다. 계정에 계층 구조 네임스페이스가 있는 경우 컨테이너에는 0개 이상의 디렉터리를 포함할 수 있으며 해당 디렉터리에는 0개 이상의 Blob이 포함될 수 있습니다. Blob은 이진 데이터, 속성 및 메타데이터로 구성된 단일 엔터티입니다.
리소스 이름
컨테이너 또는 Blob을 참조하는 URI는 고유해야 합니다. 계정 이름이 고유하기 때문에 두 계정에서 동일한 이름의 컨테이너를 가질 수 있습니다. 그러나 한 저장소 계정 내 모든 컨테이너는 고유한 이름을 가져야 합니다. 특정 컨테이너 내 모든 Blob 또한 해당 컨테이너 내에서 고유한 이름을 가져야 합니다.
명명 규칙을 위반하는 이름으로 컨테이너 또는 Blob을 만들 경우 상태 코드 400(잘못된 요청)의 오류가 발생합니다.
Blob 및 컨테이너 이름은 URL 내에서 Blob 서비스에 전달됩니다. 특정 문자는 UTF-8(기본) 또는 MBCS를 사용하여 퍼센트 인코딩되어야 URL에 표시될 수 있습니다. 이 인코딩은 Azure Storage 클라이언트 라이브러리를 사용할 때 자동으로 발생합니다. 그러나 인코딩해도 URL 경로에 적합하지 않은 문자가 있습니다. 이러한 문자가 Blob 또는 컨테이너 이름에 표시되면 요청이 실패할 수 있습니다. 이러한 문자 목록은 컨테이너 또는 Blob 이름에 사용하지 않는 유니코드 문자를 참조하세요.
\uE000과 같은 코드 포인트는 NTFS 파일 이름에는 적합하지만 유효한 유니코드 문자가 아니므로 사용할 수 없습니다. 제어 문자(0x00-0x1F, \u0081 등)와 같은 일부 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자 이상이어야 하고 1,024자 이하여야 합니다.
Azure Storage 에뮬레이터는 최대 256자의 Blob 이름을 지원합니다. 자세한 내용은 개발 및 테스트에 Azure Storage 에뮬레이터 사용을 참조하세요.
대/소문자를 구분합니다.
예약된 URL 문자는 적절히 이스케이프되어야 합니다.
계정에 계층 구조 네임스페이스가 없는 경우 Blob 이름을 구성하는 경로 세그먼트 수는 254를 초과할 수 없습니다. 패스 세그먼트는 가상 디렉터리의 이름에 해당하는 연속적인 구분 기호 문자(예:, 슬래시 '/') 사이의 문자열입니다.
참고
점(.), 슬래시(/), 백슬래시(\) 또는 둘의 시퀀스 또는 조합으로 끝나는 Blob 이름을 사용하지 마세요. 패스 세그먼트는 점(.)으로 끝나서는 안 됩니다.
기본적으로 Blob 서비스는 계층 구조 체계가 아닌 플랫 스토리지 체계를 기반으로 합니다. 그러나 Blob 이름 내에서 한 문자 또는 문자열의 구분 기호를 지정하여 가상 계층을 만들 수 있습니다. 다음 목록에 유효하고 고유한 Blob 이름의 예가 나와 있습니다. 동일 컨테이너에서 하나의 문자열이 동시에 유효한 Blob 이름 및 가상 디렉터리 이름이 될 수 있습니다.
/a
/a.txt
/a/b
/a/b.txt
Blob을 열거할 때 구분 기호 문자를 사용할 수 있습니다.
메타데이터 이름
컨테이너 또는 Blob 리소스의 메타데이터는 리소스와 연결된 이름과 값의 쌍으로 저장됩니다. 메타데이터 이름은 C# 식별자에 대한 명명 규칙을 준수해야 합니다.
메타데이터를 만들 때는 이름에서 대/소문자를 구분하지만 설정하거나 읽을 때에는 대/소문자를 구분하지 않습니다. 리소스에 대해 동일한 이름의 메타데이터 헤더가 두 개 이상 제출될 경우 Blob 서비스는 상태 코드 400(잘못된 요청)을 반환합니다.
리소스 URI 구문
각 리소스에 해당하는 기본 URL을 통해 리소스를 참조하게 됩니다.
저장소 계정의 경우 기본 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
). 자세한 내용은 루트 컨테이너 작업을 참조하세요. 다음 URI는 모두 루트 컨테이너의 Blob을 참조합니다.
https://myaccount.blob.core.windows.net/myblob
https://myaccount.blob.core.windows.net/$root/myblob
Blob 스냅숏
스냅숏은 스냅숏이 생성될 당시에 저장된 Blob의 읽기 전용 버전입니다. 스냅숏을 사용하여 Blob의 백업 또는 검사점을 만들 수 있습니다. 스냅숏 Blob 이름에는 기본 Blob URI와 함께 스냅숏이 생성된 날짜와 시간을 나타내는 값이 포함됩니다.
다음과 같은 URI의 Blob을 가정해 보겠습니다.
https://myaccount.blob.core.windows.net/mycontainer/myblob
이 Blob의 스냅숏 URI는 다음과 같습니다.
https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
컨테이너 또는 Blob 이름에는 유니코드 문자를 사용하지 않는 것이 좋습니다.
다음 표에서는 컨테이너 또는 Blob 이름에 사용하지 않는 유니코드 문자 목록을 제공합니다. 이 목록의 다른 문자와 함께 사용할 경우 이러한 문자는 UTF-8 또는 MCBS 디코딩에 실패하여 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 |