Move Objects Lifecycle Script

หากผู้ใช้งานต้องการย้ายที่อยู่ของ object เมื่อเวลาผ่านไปตามระยะเวลาที่กำหนด ผู้ใช้สามารถทำได้ผ่าน python script โดยใช้งาน library boto3 และ crontab เพื่อให้มีการเรียกใช้งาน script ได้อย่างสม่ำเสมอ

Prerequisite

  • Bucket ที่เป็นต้นทาง และ ปลายทาง หากต้องการย้าย Object ข้าม Bucket (Create an Object Storage Bucket)

  • Sub-User ที่มีสิทธิ์การเข้าถึง Bucket ต้นทาง และ ปลายทาง (Create Object Storage Sub-User)

  • Python Version ตั้งแต่ 3.8 ขึ้นไป

Instructions

  1. ทำการติดตั้ง Python library boto3

pip install boto3
  1. ใส่ config สำหรับการเข้าใช้งาน s3 bucket ที่ path ~/.aws/credentials โดยใส่ข้อมูลดังนี้

    1. endpoint_url -> endpoint สำหรับใช้งาน s3 bucket โดยจะขึ้นอยู่กับ bucket ที่สร้างนั้นอยู่ Availability Zone ใด หากเป็น NCP-BKK ให้ใส่เป็น https://s3-bkk.nipa.cloud หากเป็น NCP-NON ให้ใส่เป็น https://s3-non.nipa.cloud

    2. region -> ให้ใส่เป็น NCP-TH

    3. aws_access_key_id -> เป็น access key ที่ได้จากการสร้าง Sub-User

    4. aws_secret_access_key -> เป็น secret access key ที่ได้จากการสร้าง Sub-User

ตัวอย่างสำหรับ bucket ที่อยู่ Availability Zone NCP-BKK
[default]
endpoint_url=https://s3-bkk.nipa.cloud
region=NCP-TH
aws_access_key_id=MB87E*************ZD
aws_secret_access_key=MDMhvK7moXARGZujM*************61DYtGipNn
  1. ทำการสร้างไฟล์ script สำหรับการย้าย object โดยข้อมูลที่ต้องแก้ไขมีดังนี้

    1. SOURCE_BUCKET -> Bucket ต้นทางที่ต้องการใช้งาน policy

    2. DESTINATION_BUCKET -> Bucket ปลายทางที่ต้องการใช้งาน policy (หากต้องการเพียงย้ายที่อยู่ไฟล์ภายใน Bucket เดียวกัน ให้ใส่เป็นข้อมูลเดียวกันกับ SOURCE_BUCKET)

    3. SOURCE_PATH -> path ของ folder ของ bucket ต้นทางที่ซึ่งภายในมี object ที่ต้องการใช้งาน policy

    4. DESTINATION_PATH -> path ของ folder ที่อยู่บน bucket ปลายทางที่ต้องการย้าย object ไป

    5. ฟังก์ชัน timedelta() ในบรรทัดที่ 19 -> ระยะเวลาของ policy ที่ต้องการให้ย้าย object เมื่อเวลาผ่านไปตามที่กำหนด โดยสามารถเลือกใส่ parameter ได้ดังนี้, days, seconds, microseconds, milliseconds, minutes, hours, weeks

  1. การใช้งาน crontab สำหรับ OS Ubuntu เพื่อให้มีการเรียกใช้งาน script อย่างสม่ำเสมอ โดยสามารถเรียกใช้งาน crontab ด้วยคำสั่ง crontab -e แล้วใส่ข้อมูลดังนี้

    1. ช่วงเวลาที่จะให้ run script โดยมี format คือ minute hour day(month) month day(week)

    2. script ที่ต้องการให้ run โดยจะใส่เป็น python <ที่อยู่ไฟล์>

Last updated

Was this helpful?