th object-storage

สร้าง Bucket คัดลอกและซิงก์ไฟล์ด้วย path แบบ th:// เปิดโฟลเดอร์เป็นสาธารณะ และแชร์ไฟล์เดี่ยวด้วยลิงก์ที่หมดอายุ

เกี่ยวกับ

Object Storage เก็บไฟล์ (object) ไว้ใน Bucket object เป็นแบบส่วนตัวเสมอ เว้นแต่คุณเปิดโฟลเดอร์เป็นสาธารณะ ใน th จะเขียน object เป็น th://BUCKET/KEY ส่วน path อื่นคือไฟล์บนเครื่องของคุณ key ที่ลงท้ายด้วย / คือโฟลเดอร์ (prefix)

Pathความหมาย
th://mediaBucket ชื่อ media
th://media/photos/โฟลเดอร์ photos/ ใน Bucket นั้น
th://media/photos/cat.jpgobject หนึ่งรายการ
./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

Shell
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) เพื่อดาวน์โหลด

ซิงก์โฟลเดอร์ให้ตรงกันเสมอ

  1. ดูก่อนว่าจะมีอะไรเปลี่ยน: th object-storage sync ./public th://my-bucket/site --dry-run
  2. อัปโหลดไฟล์ใหม่และไฟล์ที่เปลี่ยน: รันอีกครั้งโดยไม่ใส่ --dry-run ไฟล์ที่ขนาดและ MD5 ตรงกับ object ถือว่าไม่เปลี่ยน
  3. ใส่ --delete เพื่อลบ object ที่ไม่มีในโฟลเดอร์แล้วด้วย (หลังยืนยัน)
Shell
th object-storage sync ./public th://my-bucket/site --delete

เปิดโฟลเดอร์เป็นสาธารณะ

Shell
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

ไวยากรณ์

Shell
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 เริ่มต้น

Shell
th object-storage buckets create my-bucket

สร้างใน Region ที่ระบุ

Shell
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

ไวยากรณ์

Shell
th object-storage buckets list

ตัวอย่าง

ดูรายการ Bucket

Shell
th object-storage buckets list

พารามิเตอร์ส่วนกลาง

คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet

กลับขึ้นด้านบน ↑

th object-storage buckets public

ดูหรือเปลี่ยนสิ่งที่ทุกคนอ่านได้จาก Bucket โดยไม่ต้องใช้ Key

ไวยากรณ์

Shell
th object-storage buckets public NAME [--prefix P [--list]] [--private]
--prefix P             เปิดโฟลเดอร์ P (เช่น images/) เป็นสาธารณะ  --prefix ""
                       ทำให้ทั้ง Bucket เป็นสาธารณะ
--prefix P --list      ให้ทุกคนดูรายการไฟล์ในโฟลเดอร์นั้นได้ด้วย
--private --prefix P   ทำให้โฟลเดอร์นั้นกลับเป็นส่วนตัว
--private              ทำให้ทั้ง Bucket เป็นส่วนตัว (ลบกฎทั้งหมด)

ถ้าไม่ใส่แฟล็ก คำสั่งจะแสดงกฎปัจจุบัน

ตัวอย่าง

แสดงกฎสาธารณะ

Shell
th object-storage buckets public my-bucket

เปิด images/ เป็นสาธารณะ

Shell
th object-storage buckets public my-bucket --prefix images/

ให้ทุกคนดูรายการใน images/ ได้ด้วย

Shell
th object-storage buckets public my-bucket --prefix images/ --list

ทำให้ทั้ง Bucket เป็นส่วนตัว

Shell
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 ที่ว่าง

ไวยากรณ์

Shell
th object-storage buckets delete NAME [--force] [--quiet]

เมื่อใส่ --force Bucket ที่มี object จะถูกลบทันที และ object จะถูกลบในเบื้องหลัง --quiet ข้ามการยืนยัน

ตัวอย่าง

ลบ Bucket ที่ว่าง

Shell
th object-storage buckets delete my-bucket

ลบพร้อม object ทั้งหมด โดยไม่ถามยืนยัน

Shell
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

ไวยากรณ์

Shell
th object-storage ls [th://BUCKET[/PREFIX]] [--recursive]

ใส่ th://BUCKET เพื่อแสดง object และโฟลเดอร์ที่ชั้นบนสุดของ Bucket ใส่ th://BUCKET/PREFIX เพื่อแสดงสิ่งที่อยู่ใต้ PREFIX --recursive แสดงทุก object ที่อยู่ข้างใต้ โดยไม่แสดงโฟลเดอร์

ตัวอย่าง

ดูรายการ Bucket

Shell
th object-storage ls

object และโฟลเดอร์ใต้ reports/

Shell
th object-storage ls th://my-bucket/reports/

ทุก object ใน Bucket

Shell
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

ไวยากรณ์

Shell
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 เดาจากนามสกุลไฟล์ ถ้าไม่ได้ระบุ

ตัวอย่าง

อัปโหลดไฟล์เข้าโฟลเดอร์

Shell
th object-storage cp ./report.pdf th://my-bucket/reports/

อัปโหลดโฟลเดอร์

Shell
th object-storage cp -r ./backups th://my-bucket/backups

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

Shell
th object-storage cp th://my-bucket/reports/report.pdf ./

เขียน object ออก standard output

Shell
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 extensioncontent type ของ object ที่อัปโหลด (ค่าเริ่มต้น: ตามนามสกุลไฟล์)

พารามิเตอร์ส่วนกลาง

คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet

กลับขึ้นด้านบน ↑

th object-storage mv

ย้ายไฟล์ขึ้น ลง หรือระหว่าง Bucket

ไวยากรณ์

Shell
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 ไปโฟลเดอร์อื่น

Shell
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 extensioncontent type ของ object ที่อัปโหลด (ค่าเริ่มต้น: ตามนามสกุลไฟล์)

พารามิเตอร์ส่วนกลาง

คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet

กลับขึ้นด้านบน ↑

th object-storage sync

อัปโหลดไฟล์ใน LOCAL_DIR ที่ใหม่หรือเปลี่ยนไป ขึ้นไปไว้ใต้ PREFIX/

ไวยากรณ์

Shell
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 ข้ามได้)

ตัวอย่าง

ดูว่าจะมีอะไรเปลี่ยน

Shell
th object-storage sync ./public th://my-bucket/site --dry-run

อัปโหลดสิ่งที่เปลี่ยน และลบไฟล์ที่ถูกลบไปแล้ว

Shell
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 extensioncontent type ของ object ที่อัปโหลด (ค่าเริ่มต้น: ตามนามสกุลไฟล์)

พารามิเตอร์ส่วนกลาง

คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet

กลับขึ้นด้านบน ↑

th object-storage cat

เขียน object ออก standard output

ไวยากรณ์

Shell
th object-storage cat th://BUCKET/KEY

ตัวอย่าง

แสดงเนื้อหาของ object

Shell
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

ไวยากรณ์

Shell
th object-storage stat th://BUCKET/KEY

ตัวอย่าง

ขนาด ชนิด ETag และ metadata

Shell
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)

ไวยากรณ์

Shell
th object-storage sign th://BUCKET/KEY [--expires 1h] [--method GET|PUT]

ตัวอย่าง

ลิงก์ดาวน์โหลดที่ใช้ได้ 1 ชั่วโมง

Shell
th object-storage sign th://my-bucket/reports/report.pdf --expires 1h

ลิงก์อัปโหลดที่ใช้ได้ 15 นาที

Shell
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ข้อความGETGET (ดาวน์โหลด ค่าเริ่มต้น) หรือ PUT (อัปโหลด)

พารามิเตอร์ส่วนกลาง

คำสั่งนี้รับพารามิเตอร์ส่วนกลางด้วย: --project, --region, --endpoint, --format, --quiet

กลับขึ้นด้านบน ↑

th object-storage rm

ลบ object

ไวยากรณ์

Shell
th object-storage rm th://BUCKET/KEY [-r] [--quiet]

เมื่อใส่ -r จะลบทุก object ใต้ prefix (หลังยืนยัน ซึ่ง --quiet ข้ามได้)

ตัวอย่าง

ลบ object เดียว

Shell
th object-storage rm th://my-bucket/tmp/old.log

ลบทุกอย่างใต้ tmp/ โดยไม่ถามยืนยัน

Shell
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

กลับขึ้นด้านบน ↑