공유, 디렉터리, 파일 및 메타데이터 이름 지정 및 참조
스토리지 계정에는 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 파일 이름에서 유효하지만 유니코드 문자는 유효하지 않습니다. 또한 컨트롤 문자(0x1F
0x00
)와 같은 일부 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$, 점 문자(.) 및 두 개의 점 문자(..)는 허용되지 않습니다.
- 버전 2021-12-02부터 디렉터리 및 파일 이름은 모든 작업을 통해 U+FFFE 및 U+FFFF 문자를 지원합니다. 이러한 문자는 SMB 및 REST 프로토콜을 통해서도 지원됩니다. 목록 디렉터리 및 파일 및 목록 핸들 작업은 해당 설명서에 설명된 대로 이러한 문자에 대해 특별한 처리가 필요합니다.
기본적으로 SMB 프로토콜이 설정된 파일 공유의 경우 디렉터리 끝에 있는 점(.) 문자와 요청 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에 대해 사용 가능한 헤더 옵션을 확인하세요.
기본적으로 NFS 프로토콜이 설정된 파일 공유의 경우 디렉터리 끝에 있는 점(.) 문자와 요청 URL의 파일 이름은 무시되지.
다음 표에서는 Azure Files 및 Azure Blob Storage에 대한 명명 제한을 비교합니다.
컨테이너, Blob 및 메타데이터 명명 및 참조 | SMB 프로토콜 이름 제한 |
---|---|
• Blob 이름은 하나 이상의 문자여야 하며 길이는 1,024자를 초과할 수 없습니다. • Blob 이름은 대/소문자를 구분합니다. • 예약된 URL 문자를 올바르게 이스케이프해야 합니다. • Blob 이름은 슬래시(/)와 같은 가상 디렉터리 구분 기호로 끝날 수 있습니다. • URL 경로 문자가 잘못되었습니다. NTFS 파일 이름에서 유효하지만 \uE000같은 코드 포인트는 유효한 유니코드 문자가 아닙니다. 또한 컨트롤 문자(0x1F 0x00)와 같은 일부 ASCII 또는 유니코드 문자도 허용되지 않습니다. HTTP/1.1에서 유니코드 문자열을 제어하는 규칙은 RFC 2616, 섹션 2.2: 기본 규칙 및 RFC 3987 참조하세요. |
• 경로 이름은 길이가 32,760자를 넘을 수 없습니다. • 각 경로 이름 구성 요소(파일/디렉터리)의 길이는 255자를 초과할 수 없습니다. • 경로 이름은 (\) 뒤로 슬래시 문자로 구분된 하나 이상의 경로 이름 구성 요소로 구성됩니다. • 경로 이름은 대/소문자를 구분하지 않고 대/소문자를 구분하지 않습니다(대/소문자만 다른 두 이름은 허용되지 않음). • 파일 경로와 동일한 디렉터리 경로를 가질 수 없습니다. • 구성 요소 이름에는 다음과 같은 문자가 잘못되었습니다. \ / : ¦ < > * ? " • 0x1F 0x00 범위의 컨트롤 문자는 공유 이름에 불법입니다. |
경로 이름
경로 이름은 슬래시(/) 문자로 구분된 하나 이상의 경로 이름 구성 요소(디렉터리 또는 파일 이름)로 구성됩니다. 마지막 경로 이름 구성 요소 이외의 모든 경로 이름 구성 요소는 디렉터리를 나타냅니다. 마지막 경로 이름 구성 요소는 디렉터리 또는 파일을 표시합니다. 다음 명명 규칙이 적용됩니다.
- 경로 이름은 길이가 2,048자를 초과할 수 없습니다. 경로의 개별 구성 요소는 길이가 최대 255자일 수 있습니다.
- 경로 이름은 슬래시(/) 문자로 구분된 하나 이상의 경로 이름 구성 요소로 구성됩니다.
- 경로의 하위 디렉터리 깊이는 250을 초과할 수 없습니다.
- 동일한 부모 디렉터리를 공유하는 파일 및 디렉터리에 동일한 이름을 사용할 수 없습니다. 예를 들어 각 이름이
data
파일 및 디렉터리가 동일한 부모 경로 아래에 있을 수 없습니다.
메타데이터 이름
공유 또는 파일 리소스에 대한 메타데이터는 리소스와 연결된 이름-값 쌍으로 저장됩니다. 메타데이터 이름은 C# 식별자에 대한 명명 규칙을 준수해야 합니다.
메타데이터 이름은 만들어진 대/소문자를 유지하지만 설정하거나 읽을 때는 대/소문자를 구분하지 않습니다. 이름이 같은 두 개 이상의 메타데이터 헤더가 리소스에 대해 제출되면 Azure File Service는 상태 코드 400(잘못된 요청)을 반환합니다.
리소스 URI 구문
각 리소스에는 리소스 자체를 참조하는 해당 기본 URI가 있습니다. 스토리지 계정의 경우 기본 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