上传与获取文件

Python 中的 AWS Boto 入门

Maksim Pecherskiy

Data engineer

存储桶与对象

包含对象的存储桶

Python 中的 AWS Boto 入门

一个存储桶

S3 存储桶

  • 存储桶有一个名称
  • 名称为字符串
  • 在整个 S3 中必须唯一
  • 包含多个对象

一个对象

S3 对象

  • 对象有一个键(key)
  • 名称是从桶根开始的完整路径
  • 键在桶内必须唯一
  • 只能属于一个父存储桶
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')

将对象上传到存储桶

Python 中的 AWS Boto 入门

上传文件

S3 中的文件

Python 中的 AWS Boto 入门

上传更多对象

上传更多对象

Python 中的 AWS Boto 入门

列出存储桶中的对象

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

print(response)

列出对象的响应

Python 中的 AWS Boto 入门

列出存储桶中的对象

列出存储桶中的对象

Python 中的 AWS Boto 入门

列出存储桶中的对象

列出存储桶中的对象

Python 中的 AWS Boto 入门

列出存储桶中的对象

列出存储桶中的对象

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 入门

小结

  • 存储桶类似文件夹
  • 对象类似文件
  • boto3.client()
  • s3.upload_file()
  • s3.list_objects()
  • s3.head_object()
  • s3.download_file()
  • s3.delete_object()

存储桶

Python 中的 AWS Boto 入门

让我们创建一些对象!

Python 中的 AWS Boto 入门

Preparing Video For Download...