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)# 미리보기 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