Python で始める AWS Boto 入門
Maksim Pecherskiy
Data Engineer

gid-reports バケットを作成

# DataFrame を格納するリストを作成 df_list = []# プレフィックス付きで S3 から CSV 一覧を取得;内容を取得 response = s3.list_objects( Bucket='gid-requests', Prefix='2019_jan')# レスポンスの内容を取得 request_files = response['Contents']
# 各オブジェクトを反復 for file in request_files: obj = s3.get_object(Bucket='gid-requests', Key=file['Key'])# DataFrame として読み込み obj_df = pd.read_csv(obj['Body'])# DataFrame をリストへ追加 df_list.append(obj_df)
# リスト内の全 DataFrame を結合 df = pd.concat(df_list)# DataFrame をプレビュー df.head()

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


# 集計 CSV を S3 にアップロード
s3.upload_file(Filename='./jan_final_report.csv',
Key='2019/jan/final_report.csv',
Bucket='gid-reports',
ExtraArgs = {'ACL': 'public-read'})
# HTML テーブルを 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'})
# 集計チャートを 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'})

# 2019/ で始まる gid-reports バケットのオブジェクトを一覧 r = s3.list_objects(Bucket='gid-reports', Prefix='2019/')# レスポンス内容を DataFrame 化 objects_df = pd.DataFrame(r['Contents'])# ウェブサイト URL + Key を含む「Link」列を作成 base_url = "https://gid-reports." objects_df['Link'] = base_url + objects_df['Key']
# DataFrame を HTML に書き出し
objects_df.to_html('report_listing.html',
columns=['Link', 'LastModified', 'Size'],
render_links=True)

# ファイルを gid-reports バケット直下にアップロード
s3.upload_file(
Filename='./report_listing.html',
Key='index.html',
Bucket='gid-reports',
ExtraArgs = {
'ContentType': 'text/html',
'ACL': 'public-read'
})
バケットのウェブサイト URL *
"http://gid-reports.index.html"
Python で始める AWS Boto 入門