Получить настройки корзины S3 с помощью Python

У меня есть требование записывать сотни сегментов 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 или что-то в этом роде, так что, надеюсь, все, что я смогу получить, будет с фреймами данных.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
264
1

Ответы 1

В 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

ой клиент, а не ресурс. Позвольте мне разобраться в этом.

Shenanigator 09.11.2018 17:09

Другие вопросы по теме