Cargar y recuperar archivos

Introducción a AWS Boto en Python

Maksim Pecherskiy

Data engineer

Buckets y objetos

Cubo con objetos

Introducción a AWS Boto en Python

Un bucket

Buckets de S3

  • Un bucket tiene un nombre
  • El nombre es una cadena
  • Nombre único en todo S3.
  • Contiene muchos objetos

Un objeto

Objetos de S3

  • Un objeto tiene una clave
  • El nombre es la ruta completa desde la raíz del bucket
  • Clave única en el bucket
  • Solo puede estar en un bucket padre
Introducción a AWS Boto en Python

Crear el cliente

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

Comunicación del cliente con S3

Introducción a AWS Boto en Python

Subir archivos

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

Subir objeto a un bucket

Introducción a AWS Boto en Python

Subir archivos

Archivo en S3

Introducción a AWS Boto en Python

Subir más objetos

Subir más objetos

Introducción a AWS Boto en Python

Listar objetos en un bucket

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

print(response)

Respuesta de listado de objetos

Introducción a AWS Boto en Python

Listar objetos en un bucket

Listar objetos en un bucket

Introducción a AWS Boto en Python

Listar objetos en un bucket

Listar objetos en un bucket

Introducción a AWS Boto en Python

Listar objetos en un bucket

Listar objetos en un bucket

Introducción a AWS Boto en Python

Obtener metadatos del objeto

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

print(response)

Método head object

Introducción a AWS Boto en Python

Obtener metadatos del objeto

Respuesta de metadatos del objeto

Introducción a AWS Boto en Python

Descargar archivos

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

Descargar archivos

Introducción a AWS Boto en Python

Eliminar objetos

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

Eliminar un objeto

Introducción a AWS Boto en Python

Resumen

  • Los buckets son como carpetas
  • Los objetos son como archivos
  • boto3.client()
  • s3.upload_file()
  • s3.list_objects()
  • s3.head_object()
  • s3.download_file()
  • s3.delete_object()

Buckets

Introducción a AWS Boto en Python

¡Vamos a crear algunos objetos!

Introducción a AWS Boto en Python

Preparing Video For Download...