Как получить URL всех объектов в нашей корзине aws s3 программно с помощью python?

#python #amazon-web-services #url #amazon-s3 #boto3

#python #amazon-web-services #url #amazon-s3 #boto3

Вопрос:

Я публикую это здесь, потому что мне было очень сложно найти функцию для получения всех объектов из нашей корзины s3 с помощью python. Когда я попытался найти функцию get_object_data, мне было предложено загрузить функцию object . Итак, как мы можем получить данные всех объектов в нашей корзине AWS s3 с помощью boto3 (aws sdk для python)?

Комментарии:

1. Сколько у вас объектов? Если их много, было бы эффективнее использовать инвентарь S3.

2. Привет, Марчин, спасибо за чтение 🙂 . Здесь я не беспокоюсь об объектах number. Мне нужен был метод для получения URL объектов в моей корзине s3 с помощью SDK. Конечно, инвентаризация S3 полезна для управления большим количеством объектов.

3. Нет проблем. Рад, что он работает 🙂

Ответ №1:

  1. импортируйте boto3 в свою оболочку python
  2. установите соединение со своей учетной записью AWS и укажите ресурс (s3-bucket здесь ), к которому вы хотите получить доступ? (убедитесь, что учетные данные IAM, которые вы предоставляете, имеют доступ к этому ресурсу)
  3. получите необходимые данные

Код выглядит примерно так

 import boto3
s3_resource = boto3.resource(service_name='s3',
                             region_name='<your bucket region>'
                             aws_access_key_id='<your access key id>'
                             aws_secret_access_key='<your secret access key>')
a = s3_resource.Bucket('<your bucket name>') 
for obj in a.objects.all():
    #object URL
    print("https://<your bucket name>.s3.<your bucket region>.amazonaws.com/"   obj.key)
    #if you want to print all the data of object, just print obj