簡體   English   中英

如何從 S3 存儲桶中僅獲取子文件夾名稱

[英]How to get only the sub folder names from a S3 bucket

我有一個 S3 存儲桶,其中包含許多子文件夾。 比方說,

'test-bucket'
-->'photos'
    -->2020
    -->2019
    -->2018
    ...

在“測試桶”中有一個名為“照片”的子文件夾,在照片文件夾中可能有多個子文件夾。

所以我需要遍歷照片桶並只獲取超過 2 年的照片(即從 2018 年開始)。 這是我下面使用 python 庫 boto3 的代碼。

current_year = datetime.datetime.now().year
client.list_objects_v2(Bucket='test-bucket',Prefix = 'photos/'+str(current_year-3),MaxKeys=1000 )

但這僅返回 2018 年的數據。 提出一個想法來循環超過 2 年的整年。 提前致謝

您可以在傳遞Delimiter值時使用ListObjects()獲取文件夾名稱。 然后它將文件夾列表作為CommonPrefixes返回。

這是一些示例代碼:

import boto3

s3_client = boto3.client('s3')
objects = s3_client.list_objects_v2(Bucket='my-bucket', Delimiter='/', Prefix ='photos/')

for prefix in objects['CommonPrefixes']:
    print(prefix['Prefix'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM