공유, 디렉터리, 파일 및 메타데이터 이름 지정 및 참조
스토리지 계정에는 0개 이상의 Azure 파일 공유가 포함될 수 있습니다. 공유에는 속성, 메타데이터 및 0개 이상의 파일 또는 디렉터리가 포함됩니다. 디렉터리에는 속성 및 0개 이상의 파일 또는 디렉터리가 포함됩니다. 파일은 이진 데이터, 속성 및 메타데이터로 구성된 단일 엔터티입니다.
리소스 이름
공유, 디렉터리 또는 파일을 참조하는 URI는 고유해야 합니다. 지정된 저장소 계정 내에서 모든 공유는 고유한 이름을 가져야 합니다. 지정된 공유 또는 디렉터리 내의 모든 파일은 해당 공유 또는 디렉터리 내에서 고유한 이름을 가져야 합니다.
명명 규칙을 위반하는 이름으로 공유, 디렉터리 또는 파일을 만들 경우 상태 코드 400(잘못된 요청)의 오류가 발생합니다.
이름 공유
파일 서비스 이름에 대한 규칙은 SMB 프로토콜에서 SMB 공유 이름에 대해 미리 지정된 규칙보다 더 제한적이므로 Blob 및 파일 서비스는 컨테이너 및 공유에 대한 비슷한 명명 규칙을 공유할 수 있습니다. 공유에 대한 명명 제한 사항은 다음과 같습니다.
- 공유 이름은 유효한 DNS 이름이어야 합니다.
- 공유 이름은 문자 또는 숫자로 시작해야 하며 문자, 숫자 및 하이픈/빼기(-) 문자만 포함할 수 있습니다.
- 모든 하이픈/빼기(-) 문자 바로 앞에 문자 또는 숫자가 와야 합니다. 연속 하이픈은 공유 이름에 허용되지 않습니다.
- 공유 이름의 모든 문자는 소문자여야 합니다.
- 공유 이름의 길이는 3자 이상, 63자 이하여야 합니다.
다음 표에서는 Azure Files 및 Azure Blob Storage에 대한 명명 제한을 비교합니다.
컨테이너, BLOB, 메타데이터 이름 명명 및 참조 | SMB 공유 이름 제한 |
---|---|
• 컨테이너 이름은 유효한 DNS 이름이어야 합니다. • 컨테이너 이름은 문자 또는 숫자로 시작해야 하며 문자, 숫자 및 하이픈/빼기(-) 문자만 포함할 수 있습니다. • 모든 하이픈/빼기(-) 문자는 바로 앞에 와 문자 또는 숫자 뒤에 와야 합니다. 컨테이너 이름에는 연속 하이픈이 허용되지 않습니다. • 컨테이너 이름의 모든 문자는 소문자여야 합니다. • 컨테이너 이름은 3~63자여야 합니다. |
• 공유 이름은 길이가 80자를 넘지 않아야 합니다. • 공유 이름에 다음 문자가 잘못되었습니다. \ / [ ] : ¦ < > + = ; , * ? " • 0x1F 통해 0x00 범위의 컨트롤 문자는 공유 이름에 불법입니다. • 다른 모든 유니코드 문자는 합법적입니다. • 이름은 대/소문자를 유지하고 대/소문자를 구분하지 않습니다. |
디렉터리 및 파일 이름
Azure Files 디렉터리 및 파일 이름에 대해 다음 명명 규칙을 적용합니다.
- 디렉터리 및 파일 이름은 대/소문자를 유지하고 대/소문자를 구분하지 않습니다.
- 디렉터리 및 파일 구성 요소 이름 길이는 255자 이하여야 합니다.
- 디렉터리 이름은 슬래시 문자(/)로 끝날 수 없습니다. 사용된 경우 자동으로 제거됩니다.
- 파일 이름은 슬래시 문자(/)로 끝나지 않아야 합니다.
- 예약된 URL 문자는 적절히 이스케이프되어야 합니다.
- 다음 문자는 허용되지 않습니다.
" \ / : | < > * ?
- 잘못된 URL 경로 문자는 허용되지 않습니다. 와 같은
\uE000
코드 포인트는 NTFS 파일 이름에서 유효하지만 유니코드 문자는 유효하지 않습니다. 또한 컨트롤 문자(0x00
0x1F
~)와 같은 일부 ASCII 또는 유니코드 문자도 허용되지 않습니다. HTTP/1.1에서 유니코드 문자열을 제어하는 규칙은 RFC 2616, 섹션 2.2: 기본 규칙 및 RFC 3987을 참조하세요. - 잘못된 유니코드 문자(잘못된 서로게이트 쌍이라고 함)는 지원되지 않습니다.
- LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, dot 문자(.) 및 두 개의 점 문자(..)는 허용되지 않습니다.
- 버전 2021-12-02부터 디렉터리 및 파일 이름은 모든 작업을 통해 U+FFFE 및 U+FFFF 문자를 지원합니다. 이러한 문자는 SMB 및 REST 프로토콜을 통해서도 지원됩니다. 목록 디렉터리 및 파일 및 목록 핸들 작업은 해당 설명서에 설명된 대로 이러한 문자에 대해 특별한 처리가 필요합니다.
기본적으로 디렉터리 끝에 있는 점(.) 문자와 요청 URL의 파일 이름은 무시되거나 제외됩니다.
- 예를 들어 라는
file1...
파일을 만들면 끝에 있는 점이 무시되고 라는file1
파일이 만들어집니다. 경로의 디렉터리도 마찬가지입니다. 파일 만들기 요청에 경로\Dir1\Dir2…\File1
가 포함된 경우 파일은 에서\Dir1\Dir2\File1
만들어집니다. - 그러나 버전 2022-11-02부터 URL 요청에서 헤더
x-ms-allow-trailing-dot
true
를 로 설정하여 기본 동작을 재정의할 수 있습니다. - 예를 들어 라는
file1...
파일을 만들고 후행 점을 포함하려면 을x-ms-allow-trailing-dot
요청 헤더에 포함하고 로 설정true
해야 합니다. 디렉터리 이름을 만드는 경우도 마찬가지입니다. - 파일 복사 요청의 경우 원본 파일 이름에 후행 점을 포함하려면 헤더를
x-ms-source-allow-trailing-dot
로 설정true
해야 합니다. 자세한 내용은 각 개별 REST API에 사용 가능한 헤더 옵션을 검사.
다음 표에서는 Azure Files 및 Azure Blob Storage에 대한 명명 제한을 비교합니다.
컨테이너, BLOB, 메타데이터 이름 명명 및 참조 | SMB 프로토콜 이름 제한 |
---|---|
• Blob 이름은 하나 이상의 문자 길이여야 하며 1,024자를 초과할 수 없습니다. • Blob 이름은 대/소문자를 구분합니다. • 예약된 URL 문자를 제대로 이스케이프해야 합니다. • Blob 이름은 슬래시(/)와 같은 가상 디렉터리 구분 기호로 끝날 수 있습니다. • 잘못된 URL 경로 문자가 허용되지 않음: \uE000과 같은 코드 포인트는 NTFS 파일 이름에서 유효하지만 유니코드 문자는 유효하지 않습니다. 또한 제어 문자(0x1F 0x00)와 같은 일부 ASCII 또는 유니코드 문자도 허용되지 않습니다. HTTP/1.1에서 유니코드 문자열을 제어하는 규칙은 RFC 2616, 섹션 2.2: 기본 규칙 및 RFC 3987을 참조하세요. |
• 경로 이름은 길이가 32,760자 이하일 수 있습니다. • 각 경로 이름 구성 요소(파일/디렉터리)의 길이는 255자 이하일 수 있습니다. • 경로 이름은 (\) 뒤로 슬래시 문자로 구분된 하나 이상의 경로 이름 구성 요소로 구성됩니다. • 경로 이름은 대/소문자를 구분하지 않고 대/소문자를 구분하지 않습니다(대/소문자만 다른 두 이름은 허용되지 않음). • 파일 경로와 동일한 디렉터리 경로를 사용할 수 없습니다. • 구성 요소 이름에 다음 문자가 잘못되었습니다. \ / : ¦ < > * ? " • 0x1F 통해 0x00 범위의 컨트롤 문자는 공유 이름에 불법입니다. |
경로 이름
경로 이름은 슬래시(/) 문자로 구분된 하나 이상의 경로 이름 구성 요소(디렉터리 또는 파일 이름)로 구성됩니다. 마지막 경로 이름 구성 요소 이외의 모든 경로 이름 구성 요소는 디렉터리를 나타냅니다. 마지막 경로 이름 구성 요소는 디렉터리 또는 파일을 나타냅니다. 다음 명명 규칙이 적용됩니다.
- 경로 이름은 길이가 2,048자 이하일 수 있습니다. 경로의 개별 구성 요소는 길이가 최대 255자일 수 있습니다.
- 경로 이름은 슬래시(/) 문자로 구분된 하나 이상의 경로 이름 구성 요소로 구성됩니다.
- 경로의 하위 디렉터리 깊이는 250을 초과할 수 없습니다.
- 동일한 부모 디렉터리를 공유하는 파일 및 디렉터리에 동일한 이름을 사용할 수 없습니다. 예를 들어 각 이름이 지정된
data
파일 및 디렉터리가 동일한 부모 경로 아래에 있을 수 없습니다.
메타데이터 이름
공유 또는 파일 리소스의 메타데이터는 리소스와 연결된 이름과 값의 쌍으로 저장됩니다. 메타데이터 이름은 C# 식별자에 대한 명명 규칙을 준수해야 합니다.
메타데이터를 만들 때는 이름에서 대/소문자를 구분하지만 설정하거나 읽을 때에는 대/소문자를 구분하지 않습니다. 리소스에 대해 동일한 이름의 메타데이터 헤더가 두 개 이상 제출될 경우 Azure 파일 서비스는 상태 코드 400(잘못된 요청)을 반환합니다.
리소스 URI 구문
각 리소스에 해당하는 기본 URL을 통해 리소스를 참조하게 됩니다. 저장소 계정의 경우 기본 URI에 계정의 이름만 포함됩니다.
https://myaccount.file.core.windows.net
공유의 기본 URI에는 계정 이름과 공유 이름이 포함됩니다.
https://myaccount.file.core.windows.net/myshare
디렉터리의 기본 URI에는 계정 이름과 공유 이름, 디렉터리 경로가 포함됩니다.
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir
파일의 기본 URI에는 계정 이름과 공유 이름, 파일 경로가 포함됩니다.
https://myaccount.file.core.windows.net/myshare/myfile
https://myaccount.file.core.windows.net/myshare/mydir/myfile
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir/myfile