透過網站分享檔案

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)

DataFrame 轉為 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 入門

產生索引頁面

# 列出 gid-reports 存放貯體中以 2019/ 開頭的物件
r = s3.list_objects(Bucket='gid-reports', Prefix='2019/')

# 將回應內容轉為 DataFrame objects_df = pd.DataFrame(r['Contents'])

索引頁

Python 中的 AWS Boto 入門

產生索引頁面

# 建立一個「Link」欄,包含網站網址 + key
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...