Skip to content

حذف فایل با API Token

حذف فایل با API Token برای اسکریپت‌ها، کارهای خودکار و برنامه‌های بیرونی مناسب است. نیازی نیست پنل مدیریت را باز کنید؛ کافی است نشانی سایت، API Token و شناسه‌های دقیق فایل را بدهید تا یک یا چند فایل از ImgHost حذف شوند.

حذف یک عملیات نوشتنی است و پس از اجرای فرمان، داده‌ها واقعاً حذف می‌شوند. بهتر است ابتدا با imghost-token-list.mjs مقدارهای fileId مورد نظر را بررسی کنید و سپس همان شناسه‌ها را به اسکریپت حذف بدهید.

ویرایش API Token

آماده‌سازی

در پنل مدیریت باز کنید:

text
System Settings -> Security Settings -> API Token

هنگام ساخت یا ویرایش API Token، مطمئن شوید مجوز حذف فعال است. این اسکریپت فقط به مجوز delete نیاز دارد.

API Token را می‌توان در متغیر محیطی هم قرار داد:

powershell
$env:IMGHOST_API_TOKEN="your API Token"

دانلود اسکریپت

اسکریپتکاربرد
اسکریپت حذف فایلحذف یک یا چند شناسه فایل که صریحاً مشخص شده‌اند

برای اجرا، Node.js 18 یا نسخه جدیدتر لازم است.

رفتار 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 کار را به‌طور خودکار به چند درخواست تقسیم می‌کند.

این رابط جریان پیشرفت را با قالب NDJSON برمی‌گرداند. رویدادهای رایج شامل batch_start، file_step، file_done، batch_complete و batch_error هستند. اسکریپت این رویدادها را می‌خواند و آن‌ها را به نتیجه‌ای خوانا یا نتیجه JSON خلاصه می‌کند.

پس از حذف موفق، سمت سرور به‌طور خودکار فهرست فایل‌ها، آمار پوشه‌ها، آمار ظرفیت و پاک‌سازی کش را انجام می‌دهد.

پارامترهای اسکریپت حذف

پارامترضروریتوضیح
--base-url <url>بلهنشانی سایت ImgHost، مانند https://image.ai6.me
--token <token>بلهAPI Token؛ می‌توان از متغیر محیطی IMGHOST_API_TOKEN هم استفاده کرد
--file-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 را که صریحاً وارد کرده‌اید حذف می‌کند. جست‌وجوی تقریبی انجام نمی‌دهد، پوشه‌ای را یک‌باره خالی نمی‌کند و شناسه‌های حذف را از فهرست جداشده با ویرگول یا فایل محلی نمی‌خواند.

حذف سخت‌گیرانه و حذف نرم

حالتتوضیح
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"

استفاده از API 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 را بررسی کنید

اسکریپت حذف به شناسه فایل در 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 است که می‌توانید به اسکریپت حذف بدهید.

پرسش‌های رایج

چرا حذف شکست خورد اما فایل هنوز در فهرست است؟

در حالت پیش‌فرض strict، اگر حذف از فضای ذخیره‌سازی دوردست شکست بخورد، رکورد ImgHost باقی می‌ماند. این کار از حالتی جلوگیری می‌کند که فقط فهرست محلی حذف شود اما فایل دوردست همچنان وجود داشته باشد. پس از اطمینان از اینکه فقط می‌خواهید رکورد ImgHost پاک شود، همان fileId را با soft دوباره امتحان کنید.

چرا در نتیجه هشدار وجود دارد؟

هشدار معمولاً یعنی هنگام حذف از فضای ذخیره‌سازی دوردست، پاک‌سازی کش یا پایان‌دهی آمار، مشکلی غیرکشنده رخ داده است. اسکریپت هشدارها را خلاصه می‌کند تا بتوانید تصمیم بگیرید آیا تلاش دوباره لازم است یا نه.

آیا می‌توان یک پوشه کامل را یک‌باره حذف کرد؟

این اسکریپت امکان خالی کردن یک پوشه کامل را ندارد. ابتدا با اسکریپت فهرست، مقدارهای دقیق fileId را فیلتر کنید و سپس فایل‌هایی را که می‌خواهید حذف شوند، یکی‌یکی به اسکریپت حذف بدهید.

Released as user documentation for ImgHost.