5장. 노트북 셀을 사용하여 사용 가능한 Amazon S3 버킷에 파일 나열
버킷의 오브젝트를 나열하여 액세스할 수 있는 버킷에서 사용 가능한 파일을 확인할 수 있습니다. 버킷은 일반적인 파일 시스템이 아닌 오브젝트 스토리지를 사용하므로 오브젝트 이름 지정은 일반 파일 이름과 다르게 작동합니다. 버킷의 오브젝트는 항상 버킷의 전체 경로와 파일 자체의 이름으로 구성된 키로 알려져 있습니다.
사전 요구 사항
- 노트북의 이전 셀에서 Amazon S3 클라이언트를 구성합니다. 자세한 내용은 노트북 셀을 사용하여 Amazon S3 클라이언트 생성 을 참조하십시오.
절차
새 노트북 셀을 생성하고 버킷에 오브젝트를 나열합니다. 예를 들면 다음과 같습니다.
bucket_name = 'std-user-bucket1' s3_client.list_objects_v2(Bucket=bucket_name)
이렇게 하면 다음 형식으로 여러 개체가 반환됩니다.
{'Key': 'docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data', 'LastModified': datetime.datetime(2021, 4, 22, 1, 26, 1, tzinfo=tzlocal()), 'ETag': '"6e02fad2deassadfsf900a4bd7344ffe"', 'Size': 4052, 'StorageClass': 'STANDARD'}전체 응답 대신 키만 인쇄하여 이 목록을 더 쉽게 읽을 수 있도록 할 수 있습니다. 예를 들면 다음과 같습니다.
bucket_name = 'std-user-bucket1' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])이렇게 하면 다음과 유사한 출력이 반환됩니다.
docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data
특정 "path" 또는 파일 이름을 나열하도록 쿼리를 필터링할 수도 있습니다. 예를 들면 다음과 같습니다.
bucket_name = 'std-user-bucket1' for key in s3_client.list_objects_v2(Bucket=bucket_name,Prefix='<start_of_file_path>')['Contents']: print(key['Key'])이전 예에서 <
start_of_file_path>를 사용자 값으로 바꿉니다.