Przesyłanie i pobieranie plików

Wprowadzenie do AWS Boto w Pythonie

Maksim Pecherskiy

Data engineer

Zasobniki i obiekty

Zasobnik z obiektami

Wprowadzenie do AWS Boto w Pythonie

Zasobnik

Zasobniki S3

  • Zasobnik ma nazwę
  • Nazwa jest ciągiem znaków
  • Unikalna nazwa w całym S3
  • Zawiera wiele obiektów

Obiekt

Obiekty S3

  • Obiekt ma klucz
  • Nazwa to pełna ścieżka od katalogu głównego zasobnika
  • Unikalny klucz w zasobniku
  • Może należeć tylko do jednego zasobnika nadrzędnego
Wprowadzenie do AWS Boto w Pythonie

Tworzenie klienta

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

Komunikacja klienta z S3

Wprowadzenie do AWS Boto w Pythonie

Przesyłanie plików

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

Przesyłanie obiektu do zasobnika

Wprowadzenie do AWS Boto w Pythonie

Przesyłanie plików

Plik w S3

Wprowadzenie do AWS Boto w Pythonie

Przesyłanie kolejnych obiektów

Przesyłanie kolejnych obiektów

Wprowadzenie do AWS Boto w Pythonie

Listowanie obiektów w zasobniku

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

print(response)

Odpowiedź list objects

Wprowadzenie do AWS Boto w Pythonie

Listowanie obiektów w zasobniku

Listowanie obiektów w zasobniku

Wprowadzenie do AWS Boto w Pythonie

Listowanie obiektów w zasobniku

Listowanie obiektów w zasobniku

Wprowadzenie do AWS Boto w Pythonie

Listowanie obiektów w zasobniku

Listowanie obiektów w zasobniku

Wprowadzenie do AWS Boto w Pythonie

Pobieranie metadanych obiektu

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

print(response)

Metoda head object

Wprowadzenie do AWS Boto w Pythonie

Pobieranie metadanych obiektu

Odpowiedź z metadanymi obiektu

Wprowadzenie do AWS Boto w Pythonie

Pobieranie plików

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

Pobieranie plików

Wprowadzenie do AWS Boto w Pythonie

Usuwanie obiektów

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

Usuwanie obiektu

Wprowadzenie do AWS Boto w Pythonie

Podsumowanie

  • Zasobniki są jak foldery
  • Obiekty są jak pliki
  • boto3.client()
  • s3.upload_file()
  • s3.list_objects()
  • s3.head_object()
  • s3.download_file()
  • s3.delete_object()

Zasobniki

Wprowadzenie do AWS Boto w Pythonie

Utwórzmy kilka obiektów!

Wprowadzenie do AWS Boto w Pythonie

Preparing Video For Download...