上傳與擷取檔案

Python 中的 AWS Boto 入門

Maksim Pecherskiy

Data engineer

Buckets 與物件

含物件的儲存貯體

Python 中的 AWS Boto 入門

一個 Bucket

S3 buckets

  • Bucket 有一個名稱
  • 名稱是字串
  • 在整個 S3 中必須唯一
  • 內含多個物件

一個物件

S3 objects

  • 物件有一個鍵(key)
  • 名稱是從 bucket 根目錄起的完整路徑
  • 在該 bucket 內鍵必須唯一
  • 只能屬於一個上層 bucket
Python 中的 AWS Boto 入門

建立用戶端

s3 = boto3.client(
  's3', 
  region_name='us-east-1', 
  aws_access_key_id=AWS_KEY_ID, 
  aws_secret_access_key=AWS_SECRET
)

用戶端與 S3 通訊

Python 中的 AWS Boto 入門

上傳檔案

s3.upload_file(
  Filename='gid_requests_2019_01_01.csv', 
  Bucket='gid-requests', 
  Key='gid_requests_2019_01_01.csv')

將物件上傳到 bucket

Python 中的 AWS Boto 入門

上傳檔案

S3 中的檔案

Python 中的 AWS Boto 入門

上傳更多物件

上傳更多物件

Python 中的 AWS Boto 入門

列出 bucket 中的物件

response = s3.list_objects(
  Bucket='gid-requests', 
  MaxKeys=2,
  Prefix='gid_requests_2019_')

print(response)

列出物件的回應

Python 中的 AWS Boto 入門

列出 bucket 中的物件

列出 bucket 中的物件

Python 中的 AWS Boto 入門

列出 bucket 中的物件

列出 bucket 中的物件

Python 中的 AWS Boto 入門

列出 bucket 中的物件

列出 bucket 中的物件

Python 中的 AWS Boto 入門

取得物件中繼資料

response = s3.head_object(
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

print(response)

Head 物件方法

Python 中的 AWS Boto 入門

取得物件中繼資料

物件中繼資料回應

Python 中的 AWS Boto 入門

下載檔案

s3.download_file(
  Filename='gid_requests_downed.csv',
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

下載檔案

Python 中的 AWS Boto 入門

刪除物件

s3.delete_object(
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

刪除物件

Python 中的 AWS Boto 入門

重點整理

  • Buckets 類似資料夾
  • 物件類似檔案
  • boto3.client()
  • s3.upload_file()
  • s3.list_objects()
  • s3.head_object()
  • s3.download_file()
  • s3.delete_object()

Buckets

Python 中的 AWS Boto 入門

來建立一些物件吧!

Python 中的 AWS Boto 入門

Preparing Video For Download...