Fazendo upload e recuperando arquivos

Introdução ao AWS Boto em Python

Maksim Pecherskiy

Data engineer

Buckets e objetos

Balde com objetos

Introdução ao AWS Boto em Python

Um Bucket

Buckets S3

  • Um bucket tem um nome
  • Nome é uma string
  • Nome único em todo o S3.
  • Contém muitos objetos

Um Objeto

Objetos S3

  • Um objeto tem uma chave
  • Nome é o caminho completo a partir da raiz do bucket
  • Chave única no bucket
  • Só pode estar em um bucket pai
Introdução ao AWS Boto em Python

Criando o client

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

Cliente se comunicando com o S3

Introdução ao AWS Boto em Python

Fazendo upload de arquivos

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

Enviando objeto para um bucket

Introdução ao AWS Boto em Python

Fazendo upload de arquivos

Arquivo no S3

Introdução ao AWS Boto em Python

Enviando mais objetos

Enviando mais objetos

Introdução ao AWS Boto em Python

Listando objetos em um bucket

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

print(response)

Resposta de listagem de objetos

Introdução ao AWS Boto em Python

Listando objetos em um bucket

Listando objetos em um bucket

Introdução ao AWS Boto em Python

Listando objetos em um bucket

Listando objetos em um bucket

Introdução ao AWS Boto em Python

Listando objetos em um bucket

Listando objetos em um bucket

Introdução ao AWS Boto em Python

Obtendo metadados do objeto

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

print(response)

Método head_object

Introdução ao AWS Boto em Python

Obtendo metadados do objeto

Resposta de metadados do objeto

Introdução ao AWS Boto em Python

Baixando arquivos

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

Baixando arquivos

Introdução ao AWS Boto em Python

Excluindo objetos

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

Excluir um objeto

Introdução ao AWS Boto em Python

Resumo

  • Buckets são como pastas
  • Objetos são como arquivos
  • boto3.client()
  • s3.upload_file()
  • s3.list_objects()
  • s3.head_object()
  • s3.download_file()
  • s3.delete_object()

Buckets

Introdução ao AWS Boto em Python

Vamos criar alguns objetos!

Introdução ao AWS Boto em Python

Preparing Video For Download...