دانلود فایلهای کششده
فهرست آیتمهای کششده به شما نشان میدهد nsin چه چیزی را ذخیره کرده است. گاهی خودِ فایلها را میخواهید — برای بازیابی تصاویر پس از خرابی سرور، برای دیدن آنچه واقعاً به بازدیدکنندهها سرویس میشود، یا برای گرفتن یک نسخهی پشتیبان پیش از یک تغییر بزرگ.
nsin-dump-cache.sh همین کار را از ترمینال انجام میدهد. یک یا چند دامنه به آن
بدهید تا هر آیتم کششده را در پوشهای جدا برای هر دامنه بنویسد؛ مسیرها و نام
فایلها همانطور که هستند حفظ میشوند.
دانلود اسکریپت
Section titled “دانلود اسکریپت”curl -o nsin-dump-cache.sh https://nsin.ir/docs/nsin-dump-cache.shchmod +x nsin-dump-cache.shفقط به python3 نیاز دارد که روی macOS و همهی لینوکسهای رایج از پیش نصب است.
چیزی برای نصب کردن نیست.
تنظیم کلید API
Section titled “تنظیم کلید API”از panel.nsin.ir → Settings → API Keys یک کلید بسازید و آن را export کنید:
export NSIN_API_KEY="nsin_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"کلید فقطخواندنی کافی است — این اسکریپت فقط میخواند. بیشتر در کلیدهای API.
# یک دامنه (حداقل یک دامنه لازم است)./nsin-dump-cache.sh example.com
# چند دامنه با هم — هرکدام پوشهی خودش را میگیرد./nsin-dump-cache.sh example.com shop.example.com example.ir
# فقط تصاویر، در پوشهی دلخواه، ۱۲ دانلود همزمان./nsin-dump-cache.sh example.com --images --out ~/backup -j 12هنگام اجرا برای هر دامنه یک نوار پیشرفت زنده میبینید — تعداد انجامشده، حجم دانلودشده، سرعت لحظهای و زمان باقیمانده — و فایلهای تمامشده بالای آن فهرست میشوند.
▶ example.com registry: 1284 cached entries 1190 unique URLs, 1190 objects to fetch ✓ example.com/assets/hero.webp 184.2 KB · hit ✓ example.com/assets/app.4f2c.js 92.7 KB · hit ████████████████▍ example.com 58% 690/1190 ↓684 ✗6 214.6 MB · 5.1 MB/s ETA 01:24فایلها کجا ذخیره میشوند
Section titled “فایلها کجا ذخیره میشوند”فایلها در پوشهی جاری (یا --out) نوشته میشوند، برای هر دامنه یک پوشه:
example.com/├── index.html├── assets/│ ├── hero.webp│ └── app.4f2c.js└── cdn.example.com/ ← هر هاست دیگر، زیرپوشهی خودش را دارد └── logo.png- سابدامنهها و هاستهای وایلدکارت زیرپوشهی جداگانه میگیرند تا دو
/logo.pngمتفاوت روی هم نوشته نشوند. - آدرسهایی که پسوند ندارند بر اساس چیزی که سرور واقعاً برمیگرداند نامگذاری
میشوند —
/media/8412که WebP است بهصورت8412.webpذخیره میشود. - وقتی یک آدرس با کوئریهای مختلف کش شده باشد (
/search?q=aو/search?q=b)، هرکدام یک پسوند کوتاه میگیرند تا هر دو نگه داشته شوند:search~e244bbd4.htmlوsearch~a96c6999.html.
گزینهها
Section titled “گزینهها”| سوییچ | متغیر محیطی | کارکرد |
|---|---|---|
--images, -i | IMAGES=1 | فقط تصاویر. حالت پیشفرض همهی آیتمهای کششده را میگیرد. |
--out DIR, -o | OUTDIR | محل ذخیره. پیشفرض: پوشهی جاری. |
-j N | CONCURRENCY | تعداد دانلود همزمان. پیشفرض ۸. |
-k | INSECURE=1 | نادیدهگرفتن بررسی گواهی HTTPS. |
-h | — | نمایش راهنما. |
| — | NSIN_API_KEY | الزامی. کلید API شما. |
| — | NSIN_API | آدرس پایهی API. پیشفرض https://api.nsin.ir. |
چطور کار میکند
Section titled “چطور کار میکند”اسکریپت دو کار انجام میدهد:
۱. از API میپرسد چه آیتمهایی برای دامنهی شما کش شده — همان فهرستی که جدول آیتمهای کششده در پنل نشان میدهد، این بار بهطور کامل و صفحهبهصفحه. ۲. هر آدرس را روی HTTPS دانلود و روی دیسک ذخیره میکند.
مرحلهی دوم یک درخواست معمولی به سایت شماست، پس هر چیزی که هنوز در کش باشد از
نزدیکترین لوکیشن nsin سرویس میشود. هر خط تمامشده وقتی از کش آمده باشد
hit نشان میدهد و خلاصهی پایانی آنها را میشمارد:
done example.com 1184 saved · 0 skipped · 6 failed · 412.9 MB · 1173 edge hitsپرسشهای رایج
Section titled “پرسشهای رایج”پیام «not found, or this key’s user has no access» میگیرم. نام دامنه باید دقیقاً همان چیزی باشد که در پنل میبینید، و کلید باید متعلق به حسابی باشد که مالک آن دامنه است یا دامنه با آن به اشتراک گذاشته شده است.
چند فایل با خطای HTTP 404 ناموفق شدند. آن آیتمها هنوز در فهرست کش بودند اما آدرسشان دیگر روی سرور شما وجود ندارد. آیتمهای پاکشده یا منقضی هم همین رفتار را دارند.
میتوانم با آن سایت را منتقل کنم؟ فایلهای عمومی و کششده را به شما میدهد — مفید است، اما نسخهی پشتیبان سرور نیست. هر چیزی که هرگز از طریق nsin درخواست نشده باشد، کش نشده و در خروجی نخواهد بود.