Вивантаження та отримання файлів

Вступ до AWS Boto в Python

Maksim Pecherskiy

Data engineer

Бакети й об'єкти

Бакет з об'єктами

Вступ до AWS Boto в Python

Бакет

S3 buckets

  • Бакет має name
  • Name — це рядок
  • Унікальне ім'я в усій S3.
  • Містить багато об'єктів

Об'єкт

S3 objects

  • Об'єкт має key
  • Name — повний шлях від кореня бакета
  • Унікальний ключ у бакеті
  • Може бути лише в одному батьківському бакеті
Вступ до 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...