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

ก่อนเริ่ม
เปิดแผงผู้ดูแลระบบ แล้วไปที่:
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 ที่ชัดเจน แล้วจึงส่งไฟล์ที่ต้องการลบทีละรายการ