> For the complete documentation index, see [llms.txt](https://docs-epc.gitbook.io/ncs-documents/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-epc.gitbook.io/ncs-documents/storage/object-storage-s3/bucket-versioning.md).

# Bucket Versioning

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

* หากมีการ 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](/ncs-documents/storage/object-storage-s3/create-an-object-storage-bucket.md) หรือเปิดภายหลังจากสร้าง bucket ไปแล้วก็ได้

{% hint style="info" %}
การเปิดภายหลังจะไม่ได้ทำให้ object ต่างๆ ที่ถูกแทนที่หรือลบไปแล้วกลับมาใช้งานได้
{% endhint %}

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

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

### Prerequisite

1. มียอดคงเหลือใน project มากกว่า 0 บาท ([ขั้นตอนการเติมเงินเข้าสู่ project](/ncs-documents/nipa-cloud-space-overview/billing-and-wallet/topup-a-project-wallet.md))
2. มีการสร้าง bucket เอาไว้แล้ว ([ขั้นตอนการสร้าง bucket](/ncs-documents/storage/object-storage-s3/create-an-object-storage-bucket.md))

### Instructions

#### 1. เข้าสู่ Project

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

<figure><img src="/files/QlCiOoX25E71wO9eFmxj" alt=""><figcaption><p>Project Detail</p></figcaption></figure>

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

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

<figure><img src="/files/VM7xRcho6xo26dzgWJp3" alt=""><figcaption><p>Bucket List</p></figcaption></figure>

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

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

<figure><img src="/files/lGCRsP8tZaVtgEnioRBO" alt=""><figcaption><p>Bucket Overview</p></figcaption></figure>

#### 4. ทำการ enable bucket versioning

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

<figure><img src="/files/vYnaWO98xptWC4wtE9wR" alt=""><figcaption><p>Enable Bucket Versioing</p></figcaption></figure>

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

เมื่อ bucket versioning enable แล้ว สามารถทดสอบได้โดยการ delete file จาก bucket โดยการใช้ CyberDuck ([วิธีการ access bucket โดยใช้ CyberDuck](/ncs-documents/storage/object-storage-s3/access-s3-bucket-with-cyberduck.md))

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

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

&#x20;![](/files/g8X2JYZSNqOaRJxenXlG)![](/files/unyHmpm9P9XnB8AP061F)

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

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

![](/files/UWHxxPU827QhEtvDkR8J)

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

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

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

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

![](/files/CbV0ojoAyo2Y4ewow77n)![](/files/DzN3FBWkloenbxR7Jfp4)

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

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

![](/files/G1elqEpaFge4ccrX8PQb)![](/files/9bw9ChuflDXU08lXlTEh)

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

![](/files/d8pRsZ7q0GLww1Ye7KRS)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs-epc.gitbook.io/ncs-documents/storage/object-storage-s3/bucket-versioning.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
