Загрузка и получение файлов

Введение в AWS Boto на Python

Maksim Pecherskiy

Data engineer

Бакеты и объекты

Бакет с объектами

Введение в AWS Boto на Python

Бакет

Бакеты S3

  • У бакета есть имя
  • Имя — строка
  • Уникальное имя во всём S3.
  • Содержит множество объектов

Объект

Объекты S3

  • У объекта есть ключ
  • Имя — полный путь от корня бакета
  • Уникальный ключ в бакете
  • Может быть только в одном бакете
Введение в AWS Boto на Python

Создание клиента

s3 = boto3.client(
  's3', 
  region_name='us-east-1', 
  aws_access_key_id=AWS_KEY_ID, 
  aws_secret_access_key=AWS_SECRET
)

Взаимодействие клиента с S3

Введение в AWS Boto на Python

Загрузка файлов

s3.upload_file(
  Filename='gid_requests_2019_01_01.csv', 
  Bucket='gid-requests', 
  Key='gid_requests_2019_01_01.csv')

Загрузка объекта в бакет

Введение в AWS Boto на Python

Загрузка файлов

Файл в S3

Введение в AWS Boto на Python

Загрузка дополнительных объектов

Загрузка дополнительных объектов

Введение в AWS Boto на Python

Получение списка объектов в бакете

response = s3.list_objects(
  Bucket='gid-requests', 
  MaxKeys=2,
  Prefix='gid_requests_2019_')

print(response)

Ответ метода list_objects

Введение в AWS Boto на Python

Получение списка объектов в бакете

Список объектов в бакете

Введение в AWS Boto на Python

Получение списка объектов в бакете

Список объектов в бакете

Введение в AWS Boto на Python

Получение списка объектов в бакете

Список объектов в бакете

Введение в AWS Boto на Python

Получение метаданных объекта

response = s3.head_object(
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

print(response)

Метод head_object

Введение в AWS Boto на Python

Получение метаданных объекта

Ответ с метаданными объекта

Введение в AWS Boto на Python

Скачивание файлов

s3.download_file(
  Filename='gid_requests_downed.csv',
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

Скачивание файлов

Введение в AWS Boto на Python

Удаление объектов

s3.delete_object(
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

Удаление объекта

Введение в AWS Boto на Python

Итоги

  • Бакеты — как папки
  • Объекты — как файлы
  • boto3.client()
  • s3.upload_file()
  • s3.list_objects()
  • s3.head_object()
  • s3.download_file()
  • s3.delete_object()

Бакеты

Введение в AWS Boto на Python

Давайте потренируемся!

Введение в AWS Boto на Python

Preparing Video For Download...