دانلود فایلهای cacheشدهی شما
لیست Cached items نشان میدهد nsin چه چیزی ذخیره کرده. گاهی خود فایلها را میخواهید — برای بازیابی تصاویر بعد از کرش سرور، بررسی اینکه بازدیدکنندگان واقعاً چه میگیرند، یا نگه داشتن یک snapshot قبل از یک تغییر بزرگ.
nsin-dump-cache.sh این کار را از ترمینال شما انجام میدهد. یک یا چند
دامنه به آن بدهید تا هر object cacheشده را در یک پوشه به ازای هر دامنه
بنویسد، با همان path و نام فایل اصلی.
فایلها از cache storage nsin خوانده میشوند، نه از سایت شما گرفته میشوند. با سرور شما هیچ تماسی گرفته نمیشود، پس یک origin خاموش فرقی نمیکند.
دانلود اسکریپت
Section titled “دانلود اسکریپت”curl -o nsin-dump-cache.sh https://nsin.ir/docs/nsin-dump-cache.shchmod +x nsin-dump-cache.shفقط به python3 نیاز دارد، که از قبل روی macOS و هر لینوکس رایج هست.
چیز دیگری برای نصب نیست.
API key خود را تنظیم کنید
Section titled “API key خود را تنظیم کنید”یک key در panel.nsin.ir → Settings → API Keys بسازید و آن را export کنید:
export NSIN_API_KEY="nsin_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"یک key read-only کافی است — اسکریپت فقط میخواند. ببینید API keys.
اجرا کنید
Section titled “اجرا کنید”# One domain (at least one is required)./nsin-dump-cache.sh example.com
# Several at once — each gets its own folder./nsin-dump-cache.sh example.com shop.example.com example.ir
# A different edge location, images only, into a chosen folder, 12 at a time./nsin-dump-cache.sh example.com --node TH --images --out ~/backup -j 12برای هر دامنه یک progress bar زنده میگیرید — objectهای انجامشده، بایتهای دانلودشده، سرعت، و یک ETA — با هر فایل تمامشده که بالای آن لیست میشود.
▶ example.com registry: 1284 cached entries at node IR 1190 unique URLs, 1190 objects to fetch ✓ example.com/assets/hero.webp 184.2 KB ✓ example.com/assets/app.4f2c.js 92.7 KB ⊙ example.com/old/banner.png no longer cached ████████████████▍ example.com 58% 690/1190 ↓684 ⊙6 214.6 MB · 5.1 MB/s ETA 01:24انتخاب edge location
Section titled “انتخاب edge location”سایت شما در هر location مربوط به nsin جداگانه cache میشود، پس یک URL
میتواند چند نسخهی ذخیرهشده داشته باشد. --node تعیین میکند کدامیک
را دانلود کنید:
./nsin-dump-cache.sh example.com # IR, the default./nsin-dump-cache.sh example.com --node TH./nsin-dump-cache.sh example.com --node any # whichever copy is listed firstنام nodeها با لیست Cached items یکسان است و به بزرگ/کوچک بودن حروف حساس است. اگر location انتخابی شما چیزی ندارد، اسکریپت میگوید کدامها دارند:
nothing at node NY. cached at: IR (1284), TH (233)--node any بیشترین پوشش را میدهد — فایلی که فقط در یک location cache
شده هم دانلود میشود — به قیمت گرفتن نسخهها از هرجا که باشند.
فایلها کجا میروند
Section titled “فایلها کجا میروند”فایلها زیر پوشهی فعلی (یا --out) قرار میگیرند، یک پوشه به ازای هر
دامنه:
example.com/├── index.html├── assets/│ ├── hero.webp│ └── app.4f2c.js└── cdn.example.com/ ← other hostnames get their own subfolder └── logo.png- Subdomainها و hostnameهای wildcard پوشهی خودشان را میگیرند، پس دو
فایل
/logo.pngهرگز روی هم نمیروند. - آدرسی بدون پسوند فایل از content type ذخیرهشدهاش نام میگیرد —
/media/8412که بهصورت WebP cache شده بهعنوان8412.webpذخیره میشود. - همان آدرس که با query stringهای مختلف cache شده (
/search?q=a,/search?q=b) به ازای هر نسخه یک پسوند کوتاه میگیرد:search~e244bbd4.html,search~a96c6999.html. - فایلها uncompressed بیرون میآیند، دقیقاً همانطور که nsin ذخیره میکند، حتی اگر بازدیدکنندگان gzipشده دریافت کنند.
گزینهها
Section titled “گزینهها”| Flag | متغیر محیطی | چه کاری میکند |
|---|---|---|
--node NAME, -n | NSIN_NODE | کدام نسخهی edge location گرفته شود. پیشفرض IR؛ any هرچه لیست شده را میگیرد. |
--images, -i | IMAGES=1 | فقط تصاویر. پیشفرض همه چیز cacheشده را میگیرد. |
--out DIR, -o | OUTDIR | کجا نوشته شود. پیشفرض پوشهی فعلی. |
-j N | CONCURRENCY | چند دانلود همزمان. پیشفرض 8. |
-k | INSECURE=1 | بررسی certificate HTTPS رد شود. |
-h | — | نمایش راهنما. |
| — | NSIN_API_KEY | الزامی. API key شما. |
| — | NSIN_API | آدرس پایهی API. پیشفرض https://api.nsin.ir. |
چطور کار میکند
Section titled “چطور کار میکند”دو فراخوانی API به ازای هر object، هر دو به api.nsin.ir:
۱. List — GET /domains/<domain>/cache/keys، تا انتها صفحهبندی
میشود، فیلترشده به node انتخابی. همان دادهی جدول
Cached items پنل.
۲. Download — GET /domains/<domain>/cache/keys/content به ازای هر
ردیف، که بایتهای ذخیرهشدهی آن entry را برمیگرداند.
هر entry با hostname، node و key_hash از ردیف لیست خود آدرسدهی
میشود. اینجا چیزی با سایت شما تماس نمیگیرد: نه DNS lookup، نه درخواست
به edge، نه درخواست به سرور شما.
سوالات متداول
Section titled “سوالات متداول”میگوید “not found, or this key’s user has no access”. نام دامنه را دقیقاً همانطور که در پنل شما نشان داده میشود بنویسید. key باید متعلق به حسابی باشد که آن دامنه را دارد — یا به اشتراک گذاشته شده.
فایلهای خیلی کمتری از شمارش آیتم پنل میگیرم.
شمارش پنل همهی locationها را پوشش میدهد؛ یک اجرای تک --node فقط
نسخههای همان location را میگیرد. --node any را امتحان کنید.
میتوانم از آن برای migrate کردن یک سایت استفاده کنم؟ فایلهای public و cacheشده را میگیرد — مفید، اما نه یک backup سرور. فایلهای پشت لاگین، هرچه مشخصشده که cache نشود، و صفحات بازدیدنشده هرگز ذخیره نشدهاند.