تغییر اندازهٔ تصویر
هر برنامهٔ آدرس /_img دارد که تصویرهای خود برنامه، یا تصویرهای میزبانهایی که اجازه دادهاید، را به اندازهٔ صفحه کوچک میکند، در صورت نیاز برش میدهد و به WebP یا AVIF تبدیل میکند. هر نتیجه یک بار ساخته و نگه داشته میشود؛ هزینه فقط برای ایجاد است.
استفاده#
در صفحه، بهجای آدرس تصویر از /_img استفاده کنید. url مسیر یک فایل برنامه (مثلاً /hero.jpg) یا آدرس https یک میزبان مجاز است و w عرض دلخواه.
<img src="/_img?url=/hero.jpg&w=640" width="640" alt="">
<img srcset="/_img?url=/hero.jpg&w=640 640w, /_img?url=/hero.jpg&w=1080 1080w"
sizes="100vw" src="/_img?url=/hero.jpg&w=1080" alt="">| پارامتر | معنی |
|---|---|
url | مسیر یک فایل استاتیک برنامه، یا https:// روی میزبان مجاز. لازم. |
w | عرض، ۱ تا ۴۰۹۶. به نزدیکترین عرض مجاز بالاتر گرد میشود. لازم. |
h | ارتفاع؛ با همان نسبت عرض گرد میشود. |
q | کیفیت ۱ تا ۱۰۰ (پیشفرض ۷۵)، گرد به نزدیکترین کیفیت مجاز. |
f | auto (پیشفرض: AVIF یا WebP اگر مرورگر بپذیرد)، webp، avif، jpeg یا png. |
fit | inside (پیشفرض: کل تصویر در قاب) یا cover (قاب را پر میکند و برش میدهد؛ با h). |
pos | جای برش برای cover: center، top، bottom، left یا right. |
تصویر هیچوقت بزرگتر از اصلش نمیشود. GIF و تصویرهای متحرک، و SVG، بیتغییر فرستاده میشوند.
Next.js و Astro#
next/image بدون هیچ تنظیمی کار میکند: بارگذار پیشفرض آن /_next/image را میخواهد و همین سرورها پاسخ میدهند. اگر images.unoptimized را روشن کرده باشید یا بارگذار خودتان را داشته باشید، تصویرها همانطور که هستند فرستاده میشوند.
در Astro، <Image> و getImage() هنگام بیلد به این آدرس وصل میشوند و هیچ تصویری در بیلد پردازش نمیشود. اگر image.service خودتان را تنظیم کرده باشید، همان میماند.
میزبانهای بیرونی که در next.config یا astro.config آمدهاند باید در تنظیمات تصویر هم مجاز شوند؛ گزارش بیلد آنها را نام میبرد.
منبعهای مجاز#
فایلهای خود برنامه همیشه مجازند و بدون دسترسی به شبکه خوانده میشوند. برای تصویر از جای دیگر، میزبان را در تنظیمات اضافه کنید: یک نام (img.example.com) یا همهٔ زیرنامها (*.example.com). فقط https روی درگاه ۴۴۳؛ آدرس IP، نامهای شبکهٔ داخلی، نام کاربری و درگاه دیگر پذیرفته نمیشوند.
هر آدرس هنگام اتصال دوباره بررسی میشود، تغییر مسیرها هم، تا هیچ نامی به شبکهٔ خصوصی نرسد. منبع حداکثر ۲۰ مگابایت است.
cloudhost images hosts add images.example.com '*.cdn.example.org' --project my-site
cloudhost images set --formats webp,avif --project my-siteتنظیمات#
| تنظیم | پیشفرض |
|---|---|
enabled | روشن. خاموش: /_img پاسخ ۴۰۴ میدهد و next/image تصویر اصلی را میفرستد. |
hosts | هیچ (فقط فایلهای برنامه) |
widths | اندازههای Next.js و Astro، از ۱۶ تا ۳۸۴۰ |
qualities | ۵۰، ۷۵، ۹۰، ۱۰۰ |
formats | WebP؛ AVIF را اضافه کنید تا فایلها کوچکتر شوند (ایجادش کندتر است) |
ttl_seconds | ۸۶۴۰۰ (یک روز): چه مدت نتیجهٔ تصویر بیرونی نگه داشته میشود |
گرد کردن عرض و کیفیت به این فهرستها تعداد نسخههای هر تصویر را کم نگه میدارد، هر چه بازدیدکننده بخواهد.
کش#
هر نتیجه روی همان سرور و در فضای ذخیرهسازی تیم نگه داشته میشود و بار بعد بیهزینه فرستاده میشود. نتیجهٔ فایلهای برنامه تا وقتی فایل عوض نشده معتبر است؛ نتیجهٔ تصویر بیرونی پس از ttl_seconds دوباره ساخته میشود. وقتی فضای تیم پر شود، کماستفادهترینها اول پاک میشوند. پاک کردن کش یک برنامه همهٔ نتیجههایش را از نو میسازد.
cloudhost images usage --days 7 --project my-site
cloudhost images purge --yes --project my-siteMCP#
ابزارها: get_image_settings، set_image_settings، get_image_usage، purge_image_cache و get_team_images.
قیمت و سقفها#
| رایگان | حرفهای | |
|---|---|---|
| تبدیلها | ۵٬۰۰۰ در ماه؛ پس از آن تصویر اصلی فرستاده میشود و سایت کار میکند | برای هر ۱۰۰۰ تبدیل، از اعتبار ماهانه |
| کش تیم | ۱ گیگابایت | ۱۰ گیگابایت |
| میزبان بیرونی در هر برنامه | ۱۰ | ۵۰ |
خواندن از کش تبدیل حساب نمیشود؛ مثل هر درخواست دیگر در «درخواستهای لبه» و «انتقال داده» میآید. قیمت هر واحد در صفحهٔ قیمتها است.