我正在尝试使用boto3访问我的s3存储桶中的特定对象进行删除。
以下代码来自boto3文档。 https://boto3.readthedocs.io/en/latest/guide/migrations3.html#accessing-a-bucket
# Boto 3
for key in bucket.objects.all():
key.delete()
很棒,但我宁愿有一个字典引用然后迭代对象。这在扩展方面并不是最大的。
有没有办法用它的键抓取一个对象?
编辑:
我尝试了这个,但它没有用。浏览对象集合管理器。
s3 = boto3.resource('s3')
bucket = s3.Bucket(AWS_UPLOAD_BUCKET)
key = bucket.objects.get(key = venueobjects3key)
答案 0 :(得分:0)
看起来这是不可能的。这是过滤代码。我更容易迭代键并找到我想要的那个。跛。
过滤 某些集合支持额外的参数来过滤返回的数据集,这些参数将传递到基础服务操作中。使用filter()方法过滤结果:
# S3 list all keys with the prefix 'photos/'
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
for obj in bucket.objects.filter(Prefix='photos/'):
print('{0}:{1}'.format(bucket.name, obj.key))
答案 1 :(得分:0)
使用以下代码,我认为它将为您提供帮助
S3 = boto3.client(
's3',
region_name = 'us-west-2',
aws_access_key_id = AWS_ACCESS_KEY_ID,
aws_secret_access_key = AWS_SECRET_ACCESS_KEY
)
#Create a file object using the bucket and object key.
fileobj = S3.get_object(
Bucket=<Bucket_Name>,
Key=<Key_Name>
)
# open the file object and read it into the variable filedata.
fileData = fileobj['Body'].read()
print(fileData)