접두사와 중첩된 폴더가 Amazon Simple Storage Service(Amazon S3) 요청 속도에 미치는 영향을 이해하고 싶습니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
접두사를 사용하여 Amazon S3 버킷의 요청 속도 증가를 처리할 수 있습니다. Amazon S3 콘솔은 접두사를 폴더로 표시하며, 요청 속도를 지원하는 분할된 접두사를 표시하지 않을 수 있습니다. 자세한 내용은 객체 구성, 나열 및 작업을 참조하십시오.
접두사
키 접두사는 객체 이름의 시작 부분에 있는 문자열입니다. 접두사 길이는 객체 키 이름의 최대 1,024바이트 길이일 수 있습니다. 예를 들어 "BucketName" 버킷의 다음 객체는 공통 접두사 "Project/", "Project/WordFiles/", "Project/WordFiles/1" 및 "Project/WordFiles/4"를 공유합니다.
BucketName/Project/WordFiles/123.txt
BucketName/Project/WordFiles/145.txt
BucketName/Project/WordFiles/456.txt
BucketName/Project/WordFiles/489.txt
구분 기호를 사용하여 접두사를 계층적으로 구성할 수 있습니다. 슬래시(/) 또는 기타 문자를 구분 기호로 사용할 수 있습니다. Amazon S3는 지속 요청 속도에 따라 접두사 문자열의 어느 위치에나 자동으로 파티션을 생성할 수 있습니다. 이를 분할된 접두사라고도 합니다. 버킷의 분할된 접두사는 초당 3,500개의 PUT/COPY/POST/DELETE 요청 또는 5,500개의 GET/HEAD 요청을 지원할 수 있습니다.
버킷에 포함 가능한 접두사 수에는 제한이 없습니다. Amazon S3에서 접두사를 사용하는 방법에 대한 자세한 내용은 접두사를 사용한 객체 구성을 참조하십시오.
폴더
Amazon S3 범용 버킷은 파일 시스템에서 볼 수 있는 계층 구조가 아닌 평면 구조를 사용합니다. 하지만 탐색용 객체를 그룹화하고 표시하기 위해 Amazon S3 콘솔은 폴더 개념을 지원합니다.
Amazon S3 콘솔에서 폴더를 생성하면 Amazon S3가 0바이트 객체를 생성합니다. 객체에는 폴더 이름으로 설정된 키와 후행 슬래시(/) 문자가 있습니다. 예를 들어 Amazon S3 콘솔을 통해 "photos"라는 폴더를 생성하면 photos/ 키가 있는 0바이트 객체가 생성됩니다. 콘솔은 폴더 개념을 지원하기 위해 이 객체를 생성합니다. 콘솔에서 생성한 이러한 폴더는 실제 객체이므로 head-object API가 성공적인 응답을 반환합니다.
키 이름에 후행 슬래시(/)가 있는 모든 객체는 Amazon S3 콘솔에 폴더로 표시됩니다. 예를 들어 키 이름이 examplekeyname/인 객체는 콘솔에서 객체가 아닌 폴더로 표시됩니다.
폴더는 두 슬래시(/) 문자 사이의 값입니다. 예를 들어 파일을 BucketName/Project/WordFiles/123.txt로 저장하면 Project와 WordFiles가 모두 폴더입니다. 경로가 지정되지 않은 버킷의 루트에 123.txt 파일을 저장하면 Amazon S3는 폴더를 사용하여 파일을 저장하지 않습니다.
참고: Amazon S3 콘솔은 폴더 구조의 구분 기호로 슬래시(/)만 사용합니다. "-"와 같은 기타 문자는 객체 키 이름의 일부로 취급되며 폴더를 생성하지 않습니다.
참고: aws s3 cp와 같은 AWS CLI 및 SDK 명령은 폴더 객체를 생성하지 않습니다. 중간 폴더 객체 없이 전체 키 경로를 가진 파일 객체만 생성합니다. 따라서 존재하지 않는 폴더 키에 액세스하려고 하면 head-object API가 "NoSuchKey" 오류를 반환합니다.