Comment :
S3 내 여러 폴더, 하위폴더, 파일들로 이루어진 경로를 파악하는 과정에서 '파일'이 존재하는 경로들만 추출하고 싶음
먼저 Case부터 따져보면 아래와 같다.
S3 boto3의 list_objects_v2
& paginator
의 한계상(?) 나올 수 있는 모든 경로들을 뱉어내므로 아래와 같은 함수를 생성함.
list_objects_v2
& paginator
의 경우 위의 Case들은 아래와 같아진다.
해당 경로에 폴더들만 존재하는 경우 page 내 CommonPrefixes
를 가지고 있다.
[?] Contents
내 Key
에 해당 경로만 가짐
해당 경로에 폴더 + 파일이 존재하는 경우 page 내 CommonPrefixes
& Contents
를 가지고 있다.
[+] Contents
내 Key
로 해당 경로 + 파일 경로들을 가짐
해당 경로에 파일들만 존재하는 경우 page 내 Contents
만 가짐
CommonPrefixes
에 하위폴더 경로가 있고, Contents
에는 자기 자신의 경로만 있다.
CommonPrefixes
에 하위폴더 경로가 있고, Contents
에는 자기 자신의 경로(List 0번째에 위치)와 하위파일 경로가 있다.
CommonPrefixes
가 존재하지 않고, Contents
에는 자기 자신의 경로(List 0번째에 위치)와 하위파일 경로가 있다.
정리 :
list_objects_v2
&paginator
에 입력한 경로(Prefix; 이 경로 밑에 무엇이 있는지 탐색해야되는) 하위에 폴더 or 파일이 존재 시 Response Dictionary의Contents
List의Key
로 입력경로 & 파일의 경로가 반환된다.하위 폴더 경로에 대해서는
CommonPrefixes
의Prefix
로 반환된다.