เกี่ยวกับ
Object Storage เก็บไฟล์ (object) ไว้ใน Bucket object เป็นแบบส่วนตัวเสมอ เว้นแต่คุณเปิดโฟลเดอร์เป็นสาธารณะ ใน th จะเขียน object เป็น th://BUCKET/KEY ส่วน path อื่นคือไฟล์บนเครื่องของคุณ key ที่ลงท้ายด้วย / คือโฟลเดอร์ (prefix)
| Path | ความหมาย |
|---|---|
th://media | Bucket ชื่อ media |
th://media/photos/ | โฟลเดอร์ photos/ ใน Bucket นั้น |
th://media/photos/cat.jpg | object หนึ่งรายการ |
./photos, C:\data | ไฟล์บนเครื่องของคุณ |
- | Standard output (เมื่อเป็นปลายทางของ cp) |
คำสั่งจัดการไฟล์ใช้ Access key ของ Object Storage: Key ชั่วคราวที่สร้างให้เมื่อคุณเข้าสู่ระบบ หรือ Key ใน TH_OBJECT_STORAGE_KEY_ID / TH_OBJECT_STORAGE_SECRET ไฟล์ที่ใหญ่กว่า 64 MiB จะอัปโหลดเป็นหลายส่วนพร้อมกัน ดูเพิ่มที่ Object Storage ทำงานอย่างไร
คู่มือการใช้งาน
คัดลอกโฟลเดอร์ขึ้น Bucket
th object-storage buckets create my-bucket
th object-storage cp -r ./backups th://my-bucket/backups
th object-storage ls th://my-bucket/backups/เมื่อใส่ -r ไฟล์ใน ./backups จะไปอยู่ใต้ backups/ คัดลอกกลับทิศ (th://… ./dir) เพื่อดาวน์โหลด
ซิงก์โฟลเดอร์ให้ตรงกันเสมอ
- ดูก่อนว่าจะมีอะไรเปลี่ยน:
th object-storage sync ./public th://my-bucket/site --dry-run - อัปโหลดไฟล์ใหม่และไฟล์ที่เปลี่ยน: รันอีกครั้งโดยไม่ใส่
--dry-runไฟล์ที่ขนาดและ MD5 ตรงกับ object ถือว่าไม่เปลี่ยน - ใส่
--deleteเพื่อลบ object ที่ไม่มีในโฟลเดอร์แล้วด้วย (หลังยืนยัน)
th object-storage sync ./public th://my-bucket/site --deleteแชร์ไฟล์ด้วยลิงก์ที่หมดอายุ
th object-storage sign th://my-bucket/reports/report.pdf --expires 1h
th object-storage sign th://my-bucket/uploads/photo.jpg --method PUT --expires 15mลิงก์แรกดาวน์โหลดไฟล์ได้โดยไม่ต้องใช้ Key เป็นเวลา 1 ชั่วโมง ลิงก์ที่สองให้คนอื่นอัปโหลดไฟล์นั้นได้ ลิงก์ใช้ได้นานสุด 7 วัน
เปิดโฟลเดอร์เป็นสาธารณะ
th object-storage buckets public my-bucket --prefix images/
th object-storage buckets public my-bucketหลังจากนั้นทุกคนเปิดไฟล์ใต้ images/ ได้โดยไม่ต้องใช้ Key ถ้าไม่ใส่พารามิเตอร์ คำสั่งจะแสดงกฎปัจจุบัน --private --prefix images/ ทำให้โฟลเดอร์กลับเป็นส่วนตัว
การอ่านไฟล์สาธารณะคิดค่าบริการกับ Project ของคุณ อย่าเก็บข้อมูลส่วนบุคคลไว้ในโฟลเดอร์สาธารณะ
คำสั่ง
| คำสั่ง | คำอธิบาย |
|---|---|
th object-storage buckets create | สร้าง Bucket |
th object-storage buckets list | แสดง Bucket ของ Object Storage ใน Project |
th object-storage buckets public | ดูหรือเปลี่ยนสิ่งที่ทุกคนอ่านได้จาก Bucket โดยไม่ต้องใช้ Key |
th object-storage buckets delete | ลบ Bucket ที่ว่าง |
th object-storage ls | ถ้าไม่ใส่อาร์กิวเมนต์ จะแสดง Bucket ของ Project |
th object-storage cp | คัดลอกไฟล์ขึ้น ลง หรือระหว่าง Bucket |
th object-storage mv | ย้ายไฟล์ขึ้น ลง หรือระหว่าง Bucket |
th object-storage sync | อัปโหลดไฟล์ใน LOCAL_DIR ที่ใหม่หรือเปลี่ยนไป ขึ้นไปไว้ใต้ PREFIX/ |
th object-storage cat | เขียน object ออก standard output |
th object-storage stat | แสดงขนาด ชนิด ETag, digest และ metadata ของ object |
th object-storage sign | แสดงลิงก์ที่ดาวน์โหลด (GET) หรืออัปโหลด (PUT) object ได้โดยไม่ต้องใช้ Key จนกว่าลิงก์จะหมดอายุ (นานสุด 7d) |
th object-storage rm | ลบ object |
th object-storage buckets create
สร้าง Bucket
ไวยากรณ์
th object-storage buckets create NAME [--region REGION]NAME มี 3-63 ตัวอักษร a-z, 0-9, จุด และขีด Region เริ่มต้นคือ Region ที่ตั้งไว้ (th config set region) ถ้า Region นั้นมี Object Storage หรือ Region เดียวที่มี Object Storage
ตัวอย่าง
สร้าง Bucket ใน Region เริ่มต้น
th object-storage buckets create my-bucketสร้างใน Region ที่ระบุ
th object-storage buckets create my-bucket --region bkkอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
NAMEจำเป็น | ชื่อ Bucket: 3–63 ตัวอักษร a-z, 0-9, จุด และขีด |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage buckets list
แสดง Bucket ของ Object Storage ใน Project
ไวยากรณ์
th object-storage buckets listตัวอย่าง
ดูรายการ Bucket
th object-storage buckets listพารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage buckets public
ดูหรือเปลี่ยนสิ่งที่ทุกคนอ่านได้จาก Bucket โดยไม่ต้องใช้ Key
ไวยากรณ์
th object-storage buckets public NAME [--prefix P [--list]] [--private]--prefix P เปิดโฟลเดอร์ P (เช่น images/) เป็นสาธารณะ --prefix ""
ทำให้ทั้ง Bucket เป็นสาธารณะ
--prefix P --list ให้ทุกคนดูรายการไฟล์ในโฟลเดอร์นั้นได้ด้วย
--private --prefix P ทำให้โฟลเดอร์นั้นกลับเป็นส่วนตัว
--private ทำให้ทั้ง Bucket เป็นส่วนตัว (ลบกฎทั้งหมด)ถ้าไม่ใส่แฟล็ก คำสั่งจะแสดงกฎปัจจุบัน
ตัวอย่าง
แสดงกฎสาธารณะ
th object-storage buckets public my-bucketเปิด images/ เป็นสาธารณะ
th object-storage buckets public my-bucket --prefix images/ให้ทุกคนดูรายการใน images/ ได้ด้วย
th object-storage buckets public my-bucket --prefix images/ --listทำให้ทั้ง Bucket เป็นส่วนตัว
th object-storage buckets public my-bucket --privateอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
NAMEจำเป็น | ชื่อ Bucket: 3–63 ตัวอักษร a-z, 0-9, จุด และขีด |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--prefix | ข้อความ | โฟลเดอร์ (key prefix) ที่การเปลี่ยนแปลงมีผล | |
--list | แฟล็ก | อนุญาตให้ดูรายการในโฟลเดอร์สาธารณะด้วย | |
--private | แฟล็ก | ลบกฎของ --prefix หรือลบกฎทั้งหมด |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage buckets delete
ลบ Bucket ที่ว่าง
ไวยากรณ์
th object-storage buckets delete NAME [--force] [--quiet]เมื่อใส่ --force Bucket ที่มี object จะถูกลบทันที และ object จะถูกลบในเบื้องหลัง --quiet ข้ามการยืนยัน
ตัวอย่าง
ลบ Bucket ที่ว่าง
th object-storage buckets delete my-bucketลบพร้อม object ทั้งหมด โดยไม่ถามยืนยัน
th object-storage buckets delete my-bucket --force --quietอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
NAMEจำเป็น | ชื่อ Bucket: 3–63 ตัวอักษร a-z, 0-9, จุด และขีด |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--force | แฟล็ก | ลบ Bucket พร้อม object ทั้งหมด |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage ls
ถ้าไม่ใส่อาร์กิวเมนต์ จะแสดง Bucket ของ Project
ไวยากรณ์
th object-storage ls [th://BUCKET[/PREFIX]] [--recursive]ใส่ th://BUCKET เพื่อแสดง object และโฟลเดอร์ที่ชั้นบนสุดของ Bucket ใส่ th://BUCKET/PREFIX เพื่อแสดงสิ่งที่อยู่ใต้ PREFIX --recursive แสดงทุก object ที่อยู่ข้างใต้ โดยไม่แสดงโฟลเดอร์
ตัวอย่าง
ดูรายการ Bucket
th object-storage lsobject และโฟลเดอร์ใต้ reports/
th object-storage ls th://my-bucket/reports/ทุก object ใน Bucket
th object-storage ls th://my-bucket --recursiveอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
th://BUCKET[/PREFIX]ไม่บังคับ | Bucket ระบุโฟลเดอร์ (prefix) ในนั้นด้วยก็ได้ |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--recursive | แฟล็ก | แสดงทุก object ใต้ prefix | |
-r | แฟล็ก | เหมือน --recursive |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage cp
คัดลอกไฟล์ขึ้น ลง หรือระหว่าง Bucket
ไวยากรณ์
th object-storage cp SRC DST [-r] [--content-type TYPE]object เขียนเป็น th://BUCKET/KEY ส่วน path อื่นคือ path บนเครื่อง (- เป็น DST หมายถึงเขียนออก stdout)
th object-storage cp photo.jpg th://media/photos/ -> photos/photo.jpg
th object-storage cp th://media/a.pdf ./ -> ./a.pdf
th object-storage cp th://media/a.pdf th://archive/a.pdf (คัดลอกภายใน Object Storage)เมื่อใส่ -r SRC คือโฟลเดอร์ (หรือ prefix) และสิ่งที่อยู่ข้างในจะไปอยู่ใต้ DST เหมือน aws s3 cp --recursive ไฟล์ที่ใหญ่กว่า 64 MiB จะอัปโหลดเป็นหลายส่วนพร้อมกัน content type เดาจากนามสกุลไฟล์ ถ้าไม่ได้ระบุ
ตัวอย่าง
อัปโหลดไฟล์เข้าโฟลเดอร์
th object-storage cp ./report.pdf th://my-bucket/reports/อัปโหลดโฟลเดอร์
th object-storage cp -r ./backups th://my-bucket/backupsดาวน์โหลดไฟล์
th object-storage cp th://my-bucket/reports/report.pdf ./เขียน object ออก standard output
th object-storage cp th://my-bucket/data.json - | jq .อาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
SRCจำเป็น | สิ่งที่จะคัดลอก: path บนเครื่องหรือ th://BUCKET/KEY (โฟลเดอร์หรือ prefix เมื่อใส่ -r) |
DSTจำเป็น | ปลายทาง: path บนเครื่อง, th://BUCKET/KEY หรือ th://BUCKET/FOLDER/ หรือ - สำหรับ standard output |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--recursive | แฟล็ก | คัดลอกโฟลเดอร์หรือ prefix และทุกอย่างข้างใต้ | |
-r | แฟล็ก | เหมือน --recursive | |
--content-type | ข้อความ | by extension | content type ของ object ที่อัปโหลด (ค่าเริ่มต้น: ตามนามสกุลไฟล์) |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage mv
ย้ายไฟล์ขึ้น ลง หรือระหว่าง Bucket
ไวยากรณ์
th object-storage mv SRC DST [-r] [--content-type TYPE]object เขียนเป็น th://BUCKET/KEY ส่วน path อื่นคือ path บนเครื่อง (- เป็น DST หมายถึงเขียนออก stdout)
th object-storage mv photo.jpg th://media/photos/ -> photos/photo.jpg
th object-storage mv th://media/a.pdf ./ -> ./a.pdf
th object-storage mv th://media/a.pdf th://archive/a.pdf (คัดลอกภายใน Object Storage)เมื่อใส่ -r SRC คือโฟลเดอร์ (หรือ prefix) และสิ่งที่อยู่ข้างในจะไปอยู่ใต้ DST เหมือน aws s3 cp --recursive ไฟล์ที่ใหญ่กว่า 64 MiB จะอัปโหลดเป็นหลายส่วนพร้อมกัน content type เดาจากนามสกุลไฟล์ ถ้าไม่ได้ระบุ
ตัวอย่าง
ย้าย object ไปโฟลเดอร์อื่น
th object-storage mv th://my-bucket/inbox/a.pdf th://my-bucket/done/อาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
SRCจำเป็น | สิ่งที่จะคัดลอก: path บนเครื่องหรือ th://BUCKET/KEY (โฟลเดอร์หรือ prefix เมื่อใส่ -r) |
DSTจำเป็น | ปลายทาง: path บนเครื่อง, th://BUCKET/KEY หรือ th://BUCKET/FOLDER/ หรือ - สำหรับ standard output |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--recursive | แฟล็ก | คัดลอกโฟลเดอร์หรือ prefix และทุกอย่างข้างใต้ | |
-r | แฟล็ก | เหมือน --recursive | |
--content-type | ข้อความ | by extension | content type ของ object ที่อัปโหลด (ค่าเริ่มต้น: ตามนามสกุลไฟล์) |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage sync
อัปโหลดไฟล์ใน LOCAL_DIR ที่ใหม่หรือเปลี่ยนไป ขึ้นไปไว้ใต้ PREFIX/
ไวยากรณ์
th object-storage sync LOCAL_DIR th://BUCKET[/PREFIX] [--delete] [--dry-run]ไฟล์ถือว่าไม่เปลี่ยนเมื่อขนาดตรงกัน และ MD5 ตรงกับ ETag ของ object (object ที่อัปโหลดเป็นหลายส่วนไม่มี ETag แบบ MD5 กรณีนี้ไฟล์บนเครื่องที่ใหม่กว่า object จะนับว่าเปลี่ยน) --delete ลบ object ใต้ PREFIX/ ที่ไม่มีใน LOCAL_DIR แล้วด้วย (หลังยืนยัน ซึ่ง --quiet ข้ามได้)
ตัวอย่าง
ดูว่าจะมีอะไรเปลี่ยน
th object-storage sync ./public th://my-bucket/site --dry-runอัปโหลดสิ่งที่เปลี่ยน และลบไฟล์ที่ถูกลบไปแล้ว
th object-storage sync ./public th://my-bucket/site --deleteอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
LOCAL_DIRจำเป็น | โฟลเดอร์บนเครื่องของคุณที่จะอัปโหลด |
th://BUCKET[/PREFIX]จำเป็น | Bucket ระบุโฟลเดอร์ (prefix) ในนั้นด้วยก็ได้ |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--delete | แฟล็ก | ลบ object ที่ไม่มีใน LOCAL_DIR | |
--dry-run | แฟล็ก | แสดงเฉพาะสิ่งที่จะเปลี่ยน | |
--content-type | ข้อความ | by extension | content type ของ object ที่อัปโหลด (ค่าเริ่มต้น: ตามนามสกุลไฟล์) |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage cat
เขียน object ออก standard output
ไวยากรณ์
th object-storage cat th://BUCKET/KEYตัวอย่าง
แสดงเนื้อหาของ object
th object-storage cat th://my-bucket/config.jsonอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
th://BUCKET/KEYจำเป็น | object เช่น th://media/photos/cat.jpg (prefix เมื่อใส่ -r) |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage stat
แสดงขนาด ชนิด ETag, digest และ metadata ของ object
ไวยากรณ์
th object-storage stat th://BUCKET/KEYตัวอย่าง
ขนาด ชนิด ETag และ metadata
th object-storage stat th://my-bucket/reports/report.pdfอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
th://BUCKET/KEYจำเป็น | object เช่น th://media/photos/cat.jpg (prefix เมื่อใส่ -r) |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage sign
แสดงลิงก์ที่ดาวน์โหลด (GET) หรืออัปโหลด (PUT) object ได้โดยไม่ต้องใช้ Key จนกว่าลิงก์จะหมดอายุ (นานสุด 7d)
ไวยากรณ์
th object-storage sign th://BUCKET/KEY [--expires 1h] [--method GET|PUT]ตัวอย่าง
ลิงก์ดาวน์โหลดที่ใช้ได้ 1 ชั่วโมง
th object-storage sign th://my-bucket/reports/report.pdf --expires 1hลิงก์อัปโหลดที่ใช้ได้ 15 นาที
th object-storage sign th://my-bucket/uploads/photo.jpg --method PUT --expires 15mอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
th://BUCKET/KEYจำเป็น | object เช่น th://media/photos/cat.jpg (prefix เมื่อใส่ -r) |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--expires | ข้อความ | 1h | ระยะเวลาที่ลิงก์ใช้ได้: 15m, 1h, 7d |
--method | ข้อความ | GET | GET (ดาวน์โหลด ค่าเริ่มต้น) หรือ PUT (อัปโหลด) |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet
th object-storage rm
ลบ object
ไวยากรณ์
th object-storage rm th://BUCKET/KEY [-r] [--quiet]เมื่อใส่ -r จะลบทุก object ใต้ prefix (หลังยืนยัน ซึ่ง --quiet ข้ามได้)
ตัวอย่าง
ลบ object เดียว
th object-storage rm th://my-bucket/tmp/old.logลบทุกอย่างใต้ tmp/ โดยไม่ถามยืนยัน
th object-storage rm -r th://my-bucket/tmp/ --quietอาร์กิวเมนต์ตามตำแหน่ง
| ชื่อ | คำอธิบาย |
|---|---|
th://BUCKET/KEYจำเป็น | object เช่น th://media/photos/cat.jpg (prefix เมื่อใส่ -r) |
พารามิเตอร์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
--recursive | แฟล็ก | ลบทุกอย่างใต้ prefix | |
-r | แฟล็ก | เหมือน --recursive |
พารามิเตอร์ส่วนกลาง
คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet