1
버킷의 하위 폴더에있는 파일 목록을 가져 오려고합니다. 모든 것은 잘 작동합니다. 예외적으로, 파일을 구문 분석하려고 할 때 내 코드가 가져 오는 첫 번째 키는 하위 폴더 이름입니다. 하위 폴더 이름을 키로 남겨 둘 수있는 방법이 있습니까?Boto3 S3 버킷의 내용을 가져옵니다.
sub1/
sub1/file1
sub1/file2
.
.
버킷의 하위 폴더에있는 파일 목록을 가져 오려고합니다. 모든 것은 잘 작동합니다. 예외적으로, 파일을 구문 분석하려고 할 때 내 코드가 가져 오는 첫 번째 키는 하위 폴더 이름입니다. 하위 폴더 이름을 키로 남겨 둘 수있는 방법이 있습니까?Boto3 S3 버킷의 내용을 가져옵니다.
sub1/
sub1/file1
sub1/file2
.
.
내가 거기에 장고처럼 컬렉션에 .exclude
하지만 난이 옵션으로 볼 수없는 상상하는 것 키 인쇄에서
s3 = session.resource('s3')
bucket = s3.Bucket('bucket_name')
for obj in bucket.objects.filter(Prefix="sub1"):
key = obj.key
print(key)
결과. 이 같은 것을 시도 할 수 있습니다.
s3 = session.resource('s3')
bucket = s3.Bucket('bucket_name')
prefix = "sub1/"
data = [obj for obj in list(bucket.objects.filter(Prefix=prefix)) if obj.key != prefix]
for obj in data:
print(obj.key)
위대한 작품. 고맙습니다. – maltman
중요 사항 :이 값은 항상 존재한다고 가정하지 마십시오. 콘솔 또는 s3fs와 같은 특정 타사 도구를 사용하여 폴더를 명시 적으로 만드는 아티팩트입니다. API에서'my/example/object.txt' 파일을 생성하면 "my"또는 "example"폴더를 직접 생성하지 않고 폴더는 콘솔에 계속 나타나지만'my /'와'my/example /'List Objects API에서는 반환하지 않습니다. –