Introduction à AWS Boto en Python
Maksim Pecherskiy
Data Engineer
df = pd.read_csv('https://gid-staging.potholes.csv')

Télécharger le fichier
s3.download_file(
Filename='potholes_local.csv',
Bucket='gid-staging',
Key='2019/potholes_private.csv')
Lire depuis le disque
pd.read_csv('./potholes_local.csv')
Utiliser '.get_object()'
obj = s3.get_object(Bucket='gid-requests', Key='2019/potholes.csv')
print(obj)

Récupérer l'objet
obj = s3.get_object(
Bucket='gid-requests',
Key='2019/potholes.csv')
Lire le StreamingBody dans Pandas
pd.read_csv(obj['Body'])
Exemple
https://?AWSAccessKeyId=12345&Signature=rBmnrwutb6VkJ9hE8Uub%2BBYA9mY%3D&Expires=1557624801
Téléverser un fichier
s3.upload_file(
Filename='./potholes.csv',
Key='potholes.csv',
Bucket='gid-requests')
Générer une URL pré-signée
share_url = s3.generate_presigned_url(
ClientMethod='get_object',
ExpiresIn=3600,
Params={'Bucket': 'gid-requests','Key': 'potholes.csv'}
)
Ouvrir dans Pandas
pd.read_csv(share_url)
# Créer une liste pour stocker nos DataFrames df_list = []# Demander la liste des CSV sur S3 avec préfixe ; récupérer le contenu response = s3.list_objects( Bucket='gid-requests', Prefix='2019/')# Obtenir le contenu de la réponse request_files = response['Contents']
# Itérer sur chaque objet for file in request_files: obj = s3.get_object(Bucket='gid-requests', Key=file['Key'])# Le lire comme DataFrame obj_df = pd.read_csv(obj['Body'])# Ajouter le DataFrame à la liste df_list.append(obj_df)
# Concaténer tous les DataFrames de la liste df = pd.concat(df_list)# Prévisualiser le DataFrame df.head()

Télécharger puis ouvrir
s3.download_file()
Ouvrir directement
s3.get_object()
Générer une URL pré-signée
s3.generate_presigned_url()
Générer avec .format()
'https://{bucket}.{key}'
Générer avec .get_presigned_url()
'https://?AWSAccessKeyId=12345&Signature=rBmnrwutb6VkJ9hE8Uub%2BBYA9mY%3D&Expires=1557624801'
Introduction à AWS Boto en Python