當使用 Python/boto3 迭代 S3 物件時,我看到有一個過濾器方法。但是您可以應用 NOT 條件嗎?
我只想獲取頂級物件,而不是檔案夾中的物件(它們有前綴)。我目前正在這樣做并且它有效:
import boto3
s3 = boto3.resource('s3')
bucket = cfg['s3']['bucket_name']
for obj in s3.Bucket(bucket).objects.all():
if not re.match('folder_name.*', obj.key):
我看到支持這樣的過濾器:
for obj in s3.Bucket(bucket).objects.filter(Prefix=folder_name):
我在問有沒有辦法說 Prefix != folder_name?
uj5u.com熱心網友回復:
如果你只想要一個沒有共享前綴的物件串列,指定過濾器的分隔符,boto3 將過濾掉共享前綴:
s3 = boto3.resource('s3')
for obj in s3.Bucket(bucket).objects.filter(Delimiter='/'):
print(obj.key)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383908.html
