Bucket Versioning

การใช้งาน bucket versioning เพื่อทำ version control ให้กับแต่ละ object

bucket versioning คือการเพิ่มความปลอดภัยให้ object ต่างๆ ให้สามารถย้อนกลับ version เก่าได้ เช่น

  • หากมีการ put object เข้าไปใน bucket ใหม่ด้วย key เดียวกัน -> ควรจะเป็นการแทนที object เดิม ด้วย object ใหม่ แต่เมื่อ bucket versioning เปิดอยู่ จะเป็นการเพิ่ม version ใหม่เข้าไป และเก็บ version เก่าเอาไว้อีกที

  • หากมีการ delete object ใน bucket -> object ดังกล่าวควรจะหายไป แต่เมื่อ bucket versioning เปิดอยู่ จะเป็นการเก็บ object ดังกล่าวเป็น version เก่าเอาไว้

ด้วยเหตุผลข้างต้น เราจะสามารถกลับไปกู้คืน object ต่างๆใน bucket ได้ ทันที แต่ก็แลกมากับ bucket size ที่จะโตขึ้นเรื่อยๆ หาก version เก่าๆของ object ไม่ถูก delete ออกไป

การ Enable Bucket Versioning

การเปิดใช้งาน bucket versioning ทำได้ 2 วิธี คือ เปิดตั้งแต่ตอนสร้าง bucket โดยสามารถดูวิธีการได้จาก ขั้นตอนการสร้าง bucket หรือเปิดภายหลังจากสร้าง bucket ไปแล้วก็ได้

การเปิดภายหลังจะไม่ได้ทำให้ object ต่างๆ ที่ถูกแทนที่หรือลบไปแล้วกลับมาใช้งานได้

การ suspend versioning หลังจากที่เคย enable ไปแล้ว จะทำให้ไม่เกิด version ของ object เพิ่ม เมื่อมีการแทนที่หรือลบ object ออกจาก bucket จนกว่าจะเปิดกลับมาใหม่

รวมถึง version ต่างๆ จะไม่ถูกลบออกไปจาก bucket แม้จะทำการ suspend ไปแล้ว user ต้องทำการลบออกด้วยตัวเอง (วิธีการลบ object versioning)

Prerequisite

  1. มียอดคงเหลือใน project มากกว่า 0 บาท (ขั้นตอนการเติมเงินเข้าสู่ project)

  2. มีการสร้าง bucket เอาไว้แล้ว (ขั้นตอนการสร้าง bucket)

Instructions

1. เข้าสู่ Project

กดเลือก project จากหน้า Projects Management เพื่อเข้าสู่หน้า Project Detail

2. เข้าสู่หน้า Bucket List

กดเลือก menu OBJECT STORAGE - bucket เพื่อเข้าหน้า bucket list

3. เลือก Bucket ที่ต้องการเปิด versioning

กดที่ชื่อของ bucket ที่ต้องการเปิด versioning เพื่อทำการเข้าสู่หน้า bucket overview

4. ทำการ enable bucket versioning

กดปุ่ม enable ในกล่อง Versioning เพื่อเปิด menu Confirm Enable Versioning และกด CONFIRM เพื่อทำการเปิดการใช้งาน bucket versioning

การทำสอบว่า Bucket Versioning ถูกเปิดใช้งานหรือยัง

เมื่อ bucket versioning enable แล้ว สามารถทดสอบได้โดยการ delete file จาก bucket โดยการใช้ CyberDuck (วิธีการ access bucket โดยใช้ CyberDuck)

1. ทำการลบ object ออกจาก bucket

เข้า CyberDuck และทำการ delete object ออกไป

2. ตรวจสอบขนาดของ bucket บน NCS

หลังจาก delete object ออกไปแล้ว size ของ bucket ก็จะไม่เปลี่ยนแปลง

การลบ object ที่ถูกทำเป็น version เก่าออกจาก bucket

หากต้องการลบ version ต่างๆ ของ object ออก ให้ทำทำตามนี้

1. เปิดดู object ที่ถูก hidden ไว้บน bucket

เปิดดู hidden file ใน CyberDuck และเปิดดุ​ versioning object

2. ลบ hidden object ออกจาก bucket

เมื่อลบ hidden object หรือ object ที่เป็น version เก่าออกไปแล้ว size ของ bucket ก็จะลดลง

3. ตรวจสอบ storage size ของ bucket บน NCS

Last updated

#281: Doc Access S3 buckets with AWS S3 Client SDK

Change request updated