Skip to content

การลบไฟล์ผ่าน API Token

การลบไฟล์ผ่าน API Token เหมาะสำหรับสคริปต์ งานอัตโนมัติ และโปรแกรมของบุคคลที่สาม คุณไม่จำเป็นต้องเปิดหน้าผู้ดูแลระบบ เพียงระบุ URL ของไซต์, token และ ID ไฟล์ที่ชัดเจน ก็สามารถลบไฟล์หนึ่งไฟล์หรือหลายไฟล์จาก ImgHost ได้

การลบเป็นการดำเนินการเขียน และจะลบข้อมูลจริงหลังจากคำสั่งทำงาน ใช้ imghost-token-list.mjs ก่อนเพื่อยืนยันค่า fileId ที่ต้องการลบ แล้วจึงส่ง ID เหล่านั้นให้สคริปต์ลบ

แก้ไข API Token

ก่อนเริ่ม

เปิดแผงผู้ดูแลระบบ แล้วไปที่:

text
System Settings -> Security Settings -> API Token

เมื่อสร้างหรือแก้ไข API Token ให้ตรวจสอบว่า token อนุญาตให้ลบได้ สคริปต์นี้ต้องใช้สิทธิ์ delete เท่านั้น

คุณสามารถใส่ Token ไว้ในตัวแปรสภาพแวดล้อมได้ด้วย:

powershell
$env:IMGHOST_API_TOKEN="your API Token"

ดาวน์โหลดสคริปต์

สคริปต์วัตถุประสงค์
สคริปต์ลบไฟล์ลบ ID ไฟล์หนึ่งรายการหรือหลายรายการที่ระบุไว้อย่างชัดเจน

ต้องใช้ Node.js 18 หรือใหม่กว่า

พฤติกรรมของ API การลบ

สคริปต์ลบจะเรียก API การลบของฝั่งเซิร์ฟเวอร์:

text
POST /api/manage/delete/batch

คำขอต้องมี API Token:

text
Authorization: Bearer <token>

ตัวอย่างเนื้อหาคำขอ:

json
{
  "fileIds": ["photos/2026/a.txt"],
  "deleteStrictness": "strict"
}

หาก fileIds มีไฟล์เดียว จะเป็นการลบไฟล์เดี่ยว หากมีหลายไฟล์ จะเป็นการลบเป็นชุด ฝั่งเซิร์ฟเวอร์ประมวลผลได้สูงสุด 15 ไฟล์ต่อหนึ่งคำขอ และสคริปต์จะแบ่งงานออกเป็นหลายคำขอโดยอัตโนมัติตาม --batch-size

API ส่งคืนสตรีมความคืบหน้าแบบ NDJSON เหตุการณ์ที่พบบ่อย ได้แก่ batch_start, file_step, file_done, batch_complete และ batch_error สคริปต์จะแยกวิเคราะห์เหตุการณ์เหล่านี้และสรุปเป็นผลลัพธ์ที่อ่านง่ายหรือผลลัพธ์ JSON

หลังจากลบสำเร็จ ฝั่งเซิร์ฟเวอร์จะจัดการดัชนีไฟล์ สถิติไดเรกทอรี สถิติความจุ และการล้างแคชโดยอัตโนมัติ

พารามิเตอร์ของสคริปต์ลบ

พารามิเตอร์จำเป็นคำอธิบาย
--base-url <url>ใช่URL ของไซต์ ImgHost เช่น https://image.ai6.me
--token <token>ใช่API Token สามารถใช้ตัวแปรสภาพแวดล้อม IMGHOST_API_TOKEN ได้ด้วย
--file-id <id>ใช่ID ไฟล์ที่จะลบ สามารถส่งซ้ำหลายครั้งได้
--strictness <strict|soft>ไม่ความเข้มงวดในการลบ ค่าเริ่มต้นคือ strict
--batch-size <n>ไม่จำนวนไฟล์ต่อคำขอ ค่าเริ่มต้นคือ 15, สูงสุด 15
--retries <n>ไม่จำนวนครั้งที่ลองใหม่เมื่อเกิดความล้มเหลวชั่วคราว ค่าเริ่มต้นคือ 3
--timeout-ms <n>ไม่เวลาหมดอายุของแต่ละคำขอ ค่าเริ่มต้นคือ 180000
--output <pretty|json>ไม่รูปแบบผลลัพธ์ ค่าเริ่มต้นคือ pretty
--save-response <path>ไม่บันทึกผลลัพธ์สุดท้ายเป็นไฟล์ JSON
-h / --helpไม่แสดงวิธีใช้สคริปต์

สคริปต์นี้จะลบเฉพาะค่า --file-id ที่คุณส่งมาอย่างชัดเจนเท่านั้น ไม่ทำการจับคู่แบบคลุมเครือ ไม่ล้างไดเรกทอรีแบบเป็นชุด และไม่อ่าน ID ที่จะลบจากรายการคั่นด้วยจุลภาคหรือไฟล์ในเครื่อง

การลบแบบเข้มงวดและการลบแบบผ่อนปรน

โหมดคำอธิบาย
strictโหมดเริ่มต้น หากการลบในที่จัดเก็บระยะไกลล้มเหลว บันทึก ImgHost จะถูกเก็บไว้เพื่อให้คุณลองใหม่หรือตรวจสอบสาเหตุ
softหากการลบในที่จัดเก็บระยะไกลล้มเหลว บันทึก ImgHost จะยังถูกล้าง และผลลัพธ์จะส่งคืนคำเตือน

หากต้องลบไฟล์ระยะไกลให้สำเร็จก่อนจึงจะถือว่าคำสั่งสำเร็จ ให้ใช้โหมด strict เริ่มต้น หากแพลตฟอร์มระยะไกลไม่สามารถลบวัตถุนั้นได้อีกต่อไป และคุณต้องการล้างเฉพาะบันทึก ImgHost ให้ใช้ soft

ตัวอย่าง

ลบไฟล์หนึ่งไฟล์:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --file-id "photos/2026/a.txt"

ใช้ Token จากตัวแปรสภาพแวดล้อม:

powershell
$env:IMGHOST_API_TOKEN="your API Token"

node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt"

ลบหลายไฟล์:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt" `
  --file-id "photos/2026/b.txt" `
  --file-id "photos/2026/c.txt"

ล้างบันทึก ImgHost แม้การลบระยะไกลล้มเหลว:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt" `
  --strictness soft

ส่งออก JSON และบันทึกผลลัพธ์:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt" `
  --output json `
  --save-response ".\delete-result.json"

จำกัดแต่ละคำขอไว้ที่ 5 ไฟล์:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt" `
  --file-id "photos/2026/b.txt" `
  --batch-size 5

ตรวจสอบ fileId ก่อนลบ

สคริปต์ลบต้องใช้ ID ไฟล์ของ ImgHost คุณสามารถใช้สคริปต์รายการเพื่อตรวจสอบไฟล์ในไดเรกทอรีก่อน:

powershell
node imghost-token-list.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --files `
  --dir "photos/2026" `
  --count 10 `
  --output json

ฟิลด์ name ในผลลัพธ์ที่ส่งกลับมามักเป็น fileId ที่ส่งให้สคริปต์ลบได้

FAQ

ทำไมการลบล้มเหลว แต่ไฟล์ยังอยู่ในรายการ

เมื่อใช้โหมด strict เริ่มต้น หากการลบในที่จัดเก็บระยะไกลล้มเหลว บันทึก ImgHost จะถูกเก็บไว้ วิธีนี้หลีกเลี่ยงการลบเฉพาะดัชนีในเครื่องในขณะที่ไฟล์ระยะไกลยังมีอยู่ หลังจากยืนยันว่าคุณต้องการล้างเฉพาะบันทึก ImgHost ให้ลอง fileId เดิมอีกครั้งด้วย soft

ทำไมผลลัพธ์มีคำเตือน

คำเตือนมักหมายถึงปัญหาที่ไม่ร้ายแรงระหว่างการลบระยะไกล การล้างแคช หรือการสรุปสถิติ สคริปต์จะสรุปคำเตือนเพื่อให้คุณตัดสินใจได้ว่าจะลองใหม่หรือไม่

ลบทั้งไดเรกทอรีในครั้งเดียวได้ไหม

สคริปต์นี้ไม่มีการดำเนินการสำหรับล้างไดเรกทอรี ใช้สคริปต์รายการก่อนเพื่อกรองค่า fileId ที่ชัดเจน แล้วจึงส่งไฟล์ที่ต้องการลบทีละรายการ

Released as user documentation for ImgHost.