Giới thiệu về AWS Boto trong Python
Maksim Pecherskiy
Data Engineer

gid-reports

# Tạo danh sách để chứa các DataFrame df_list = []# Yêu cầu danh sách các CSV từ S3 theo tiền tố; Lấy nội dung response = s3.list_objects( Bucket='gid-requests', Prefix='2019_jan')# Lấy nội dung phản hồi request_files = response['Contents']
# Lặp qua từng đối tượng for file in request_files: obj = s3.get_object(Bucket='gid-requests', Key=file['Key'])# Đọc thành DataFrame obj_df = pd.read_csv(obj['Body'])# Thêm DataFrame vào danh sách df_list.append(obj_df)
# Nối tất cả DataFrame trong danh sách df = pd.concat(df_list)# Xem trước DataFrame df.head()

df.to_csv('jan_final_report.csv')df.to_html('jan_final_report.html')jan_final_chart.html


# Tải CSV tổng hợp lên S3
s3.upload_file(Filename='./jan_final_report.csv',
Key='2019/jan/final_report.csv',
Bucket='gid-reports',
ExtraArgs = {'ACL': 'public-read'})
# Tải bảng HTML lên S3
s3.upload_file(Filename='./jan_final_report.html',
Key='2019/jan/final_report.html',
Bucket='gid-reports',
ExtraArgs = {
'ContentType': 'text/html',
'ACL': 'public-read'})
# Tải biểu đồ tổng hợp lên S3
s3.upload_file(Filename='./jan_final_chart.html',
Key='2019/jan/final_chart.html',
Bucket='gid-reports',
ExtraArgs = {
'ContentType': 'text/html',
'ACL': 'public-read'})

# Liệt kê các đối tượng bucket gid-reports bắt đầu với 2019/ r = s3.list_objects(Bucket='gid-reports', Prefix='2019/')# Chuyển nội dung phản hồi thành DataFrame objects_df = pd.DataFrame(r['Contents'])# Tạo cột "Link" chứa url website + key base_url = "https://gid-reports." objects_df['Link'] = base_url + objects_df['Key']
# Ghi DataFrame ra html
objects_df.to_html('report_listing.html',
columns=['Link', 'LastModified', 'Size'],
render_links=True)

# Tải tệp lên thư mục gốc bucket gid-reports.
s3.upload_file(
Filename='./report_listing.html',
Key='index.html',
Bucket='gid-reports',
ExtraArgs = {
'ContentType': 'text/html',
'ACL': 'public-read'
})
URL website bucket *
"http://gid-reports.index.html"
Giới thiệu về AWS Boto trong Python