การอัปโหลดและดึงไฟล์

Python เบื้องต้นสำหรับ AWS Boto

Maksim Pecherskiy

Data engineer

Bucket และ object

Bucket กับ object

Python เบื้องต้นสำหรับ AWS Boto

Bucket

S3 buckets

  • Bucket มี ชื่อ
  • ชื่อ เป็น string
  • ชื่อ ไม่ซ้ำกัน ใน S3 ทั้งหมด
  • เก็บ object ได้ หลายรายการ

Object

S3 objects

  • Object มี key
  • ชื่อ คือ path เต็มจาก root ของ bucket
  • key ไม่ซ้ำกัน ใน bucket
  • อยู่ใน parent bucket ได้ เพียงหนึ่ง เดียว
Python เบื้องต้นสำหรับ AWS Boto

การสร้าง client

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

Client สื่อสารกับ S3

Python เบื้องต้นสำหรับ AWS Boto

การอัปโหลดไฟล์

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

อัปโหลด object ไปยัง bucket

Python เบื้องต้นสำหรับ AWS Boto

การอัปโหลดไฟล์

ไฟล์ใน S3

Python เบื้องต้นสำหรับ AWS Boto

การอัปโหลด object เพิ่มเติม

อัปโหลด object เพิ่มเติม

Python เบื้องต้นสำหรับ AWS Boto

การแสดงรายการ object ใน bucket

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

print(response)

response จาก list objects

Python เบื้องต้นสำหรับ AWS Boto

การแสดงรายการ object ใน bucket

รายการ object ใน bucket

Python เบื้องต้นสำหรับ AWS Boto

การแสดงรายการ object ใน bucket

รายการ object ใน bucket

Python เบื้องต้นสำหรับ AWS Boto

การแสดงรายการ object ใน bucket

รายการ object ใน bucket

Python เบื้องต้นสำหรับ AWS Boto

การดึง metadata ของ object

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

print(response)

เมธอด head object

Python เบื้องต้นสำหรับ AWS Boto

การดึง metadata ของ object

response ของ metadata object

Python เบื้องต้นสำหรับ AWS Boto

การดาวน์โหลดไฟล์

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

การดาวน์โหลดไฟล์

Python เบื้องต้นสำหรับ AWS Boto

การลบ object

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

ลบ object

Python เบื้องต้นสำหรับ AWS Boto

สรุป

  • Bucket เปรียบได้กับโฟลเดอร์
  • Object เปรียบได้กับไฟล์
  • 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...