У меня есть требование записывать сотни сегментов S3 для настроек на вкладке "Свойства" для каждого сегмента. Это необходимо для проверки того, что ни один из них не является общедоступным и не зашифрован. Позже мне также придется предоставить ACL для каждой корзины.
следующее, насколько я понял
from boto3.session import Session
import config
import pandas as pd
ACCESS_KEY=config.awsAccessKey
SECRET_KEY=config.awsSecretKey
session = Session(aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
s3 = session.resource('s3')
counter = 0
csv_list = []
path = '//ant.amazon.com/dept/DCGSI/Extracts/s3_buckets_list.csv'
for bucket in s3.buckets.all():
for obj in bucket.objects.all():
if counter == 10:
break
bucketsTwoDeep = bucket.name + obj.key
counter += 1
Это дает мне ведро и объект «папка» первого уровня. Кажется, я не могу найти способ получить недвижимость в ведре. Есть способ? Как только я смогу получить данные, мне придется поместить их в CSV или что-то в этом роде, так что, надеюсь, все, что я смогу получить, будет с фреймами данных.





В s3client есть целый стек методов get_bucket, которые могут быть тем, что вы ищете. На ум приходят get_bucket_encryption () и get_bucket_acl ().
например
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> from pprint import pprint
>>> s3client = boto3.client('s3')
>>> response = s3client.get_bucket_acl(Bucket = 'bucketname')
>>> pprint (response['Grants'])
[{'Grantee': {'DisplayName': 'username',
'ID': '3c9b78c1dbb3599d60dab12c5d9c9d7eef13ca95e2505d6e022c98345c70e5fc',
'Type': 'CanonicalUser'},
'Permission': 'FULL_CONTROL'}]
Полный список команд клиента s3 на https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#client
ой клиент, а не ресурс. Позвольте мне разобраться в этом.