Webサイトでファイルを共有する

Python で始める AWS Boto 入門

Maksim Pecherskiy

Data Engineer

HTMLページの配信

S3でHTMLを配信

Python で始める AWS Boto 入門

PandasでHTMLテーブル

DataFrameをHTMLに変換

df.to_html('table_agg.html')

DataFrameをHTMLに

Python で始める AWS Boto 入門

リンク付きのPandas HTMLテーブル

DataFrameをHTMLに変換

df.to_html('table_agg.html', render_links=True)

DataFrameをHTMLに

Python で始める AWS Boto 入門

特定の列をHTMLへ

DataFrameをHTMLに変換

df.to_html('table_agg.html', 
           render_links=True,
           columns['service_name', 'request_count', 'info_link'])

DataFrameをHTMLに

Python で始める AWS Boto 入門

枠線

DataFrameをHTMLに変換

df.to_html('table_agg.html', 
           render_links=True,
           columns['service_name', 'request_count', 'info_link'],
           border=0)

HTMLの枠線

Python で始める AWS Boto 入門

HTMLファイルをS3にアップロード

HTMLファイルをS3にアップロード

s3.upload_file(
  Filename='./table_agg.html', 
  Bucket='datacamp-website',

Key='table.html',
ExtraArgs = { 'ContentType': 'text/html', 'ACL': 'public-read'} )
Python で始める AWS Boto 入門

HTMLファイルへのアクセス

S3オブジェクトURLのテンプレート

https://{bucket}.{key}
https://datacamp-website.table.html
Python で始める AWS Boto 入門

HTMLページ

HTMLページ

Python で始める AWS Boto 入門

他のコンテンツタイプをアップロード

画像ファイルをS3にアップロード

s3.upload_file(
  Filename='./plot_image.png', 
  Bucket='datacamp-website',
  Key='plot_image.png',

ExtraArgs = { 'ContentType': 'image/png', 'ACL': 'public-read'} )
Python で始める AWS Boto 入門

IANAメディアタイプ

  • JSON : application/json
  • PNG : image/png
  • PDF : application/pdf
  • CSV : text/csv
1 http://www.iana.org/assignments/media-types/media-types.xhtml
Python で始める AWS Boto 入門

インデックスページの生成

# 2019/ で始まる gid-reports バケットのオブジェクトを一覧
r = s3.list_objects(Bucket='gid-reports', Prefix='2019/')

# レスポンス内容をDataFrameへ変換 objects_df = pd.DataFrame(r['Contents'])

インデックスページ

Python で始める AWS Boto 入門

インデックスページの生成

# WebサイトURL + Key を含む「Link」列を作成
base_url = "http://datacamp-website."
objects_df['Link'] = base_url + objects_df['Key']
# DataFrameをHTMLへ出力
objects_df.to_html('report_listing.html', 
                   columns=['Link', 'LastModified', 'Size'],
                   render_links=True)

インデックスページの生成

Python で始める AWS Boto 入門

インデックスページのアップロード

HTMLファイルをS3にアップロード

s3.upload_file(
  Filename='./report_listing.html', 
  Bucket='datacamp-website',
  Key='index.html',
  ExtraArgs = {
    'ContentType': 'text/html', 
    'ACL': 'public-read'}
)

https://datacamp-website.index.html

Python で始める AWS Boto 入門

まとめ

  • PandasでHTMLテーブル(df.to_html('table.html')
  • HTMLをアップロード(ContentType: text/html
  • 画像をアップロード(ContentType: image/png
  • HTMLページのURLを共有
Python で始める AWS Boto 入門

演習に進みましょう!

Python で始める AWS Boto 入門

Preparing Video For Download...