از درخواست update-cache
برای بهروزرسانی و حذف محتوا از حافظه پنهان Google AMP استفاده کنید. در حال حاضر، update-cache
تنها تضمین میکند که محتوا در حداکثر سن خود بهروزرسانی میشود، به این معنی که حداکثر زمانی که یک منبع تازه در نظر گرفته میشود.
درخواست update-cache
از مالک دامنه میخواهد که درخواستها را با یک کلید RSA امضا کند و کلید عمومی منطبق را از یک URL استاندارد در دامنه مبدا ارائه دهد.
میتوانید با ارسال یک درخواست امضا شده به حافظه پنهان AMP، هر نسخهای از یک سند را که در حال حاضر در حافظه پنهان ذخیره شده است، شستشو دهید. درخواست update-cache
در این آدرس فراخوانی می شود:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
مولفه های
درخواست update-cache
به پارامترها و مقادیر زیر نیاز دارد:
مولفه های | |
---|---|
example-com و example.com | ضروری نام دامنه مشخص شده با توجه به فرمت های مورد استفاده در فرمت URL حافظه پنهان AMP . |
<cache.updateCacheApiDomainSuffix> | ضروری نام دامنه AMP Cache. برای اطلاعات بیشتر به تماس با درخواست بهupdate-cache مراجعه کنید. |
amp_ts=<ts_val> | ضروری این پارامتر نشان دهنده یک مهر زمانی دوره یونیکس است که برای جلوگیری از حملات تکراری استفاده می شود. مقدار باید زمان فعلی بر حسب ثانیه باشد، که باید 1 دقیقه قبل یا بعد از زمان فعلی باشد. |
amp_url_signature=<sig_val> | ضروری این پارامتر امضای RSA کل مسیر درخواست را نشان میدهد (به ایجاد کلید RSA مراجعه کنید)، از جملهamp_action و amp_ts ، اما به استثنای خود امضا. |
رهنمودها
شما باید دستورالعمل های update-cache
را دنبال کنید:
- نام میزبان حافظه پنهان AMP (cdn.ampproject.org) از امضا حذف شده است تا امکان ارسال همان درخواست امضا شده به چندین اپراتور AMP Cache فراهم شود.
- برای تأیید امضا، باید کلید عمومی RSA را در یک مکان ثابت در دامنه سند AMP ارائه کنید (برای تولید کلید، به ایجاد کلید RSA مراجعه کنید). به عنوان مثال:
https://example.com/.well-known/amphtml/apikey.pub
- کلید عمومی نباید ربات شود.
- URL باید HTTPS باشد.
- دامنه باید دقیقاً همان دامنه ای باشد که می خواهید به روز کنید، نه یک دامنه فرعی یا فوق العاده.
- شما باید کلید را در قالب PEM منتشر کنید و کلید را با نوع محتوا "text/plain" ارائه دهید.
- AMP Cache همیشه کلید عمومی را از همان دامنه درخواست واکشی می کند، صرف نظر از دامنه مشخص شده توسط سند از طریق هر تگ rel=canonical . اگر دامنه مبدا یک تغییر مسیر HTTP را در مکانی که باید فلاش شود ارائه دهد، فقط مسیر درخواستی از حافظه پنهان پاک می شود و نه هدف تغییر مسیر.
به روز رسانی یا حذف محتوا
میتوانید از update-cache
برای بهروزرسانی یا حذف دائمی محتوا از Google AMP Cache پس از حذف محتوا از مبدا استفاده کنید. برای به روز رسانی یا حذف محتوا، مراحل زیر را دنبال کنید:
- فایل زیر را واکشی کنید:
https://cdn.ampproject.org/caches.json
- از طریق ورودی های ورودی های
caches
در فایل JSON تکرار کنید. -
caches
هایی را که می خواهید پشتیبانی کنید انتخاب کنید. - درخواست
update-cache
را با استفاده ازupdateCacheApiDomainSuffix
از هر ورودیcache
فراخوانی کنید. - URL ها را با استفاده از فرمت زیر بسازید:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
کلید RSA را تولید کنید
پروژه OpenSSL ابزارهای خط فرمان را برای تولید و مدیریت کلیدهای RSA نامتقارن فراهم می کند. شما همچنین می توانید کلیدهای RSA را تولید کرده و آنها را به صورت برنامه ریزی شده از طریق کتابخانه OpenSSL یا یک API رمزنگاری معادل (node-crypto، NSS، یا GnuTLS) مدیریت کنید.
- یک جفت کلید RSA در قالب PEM متنی مانند این ایجاد کنید:
openssl genrsa 2048 > private-key.pem openssl rsa -in private-key.pem -pubout >public-key.pem
- کلید عمومی را در دامنه ارسال کنید تا در مکان زیر به روز شود:
https://example.com/.well-known/amphtml/apikey.pub
URL باید HTTPS باشد. کلید باید توسط یک کاربر ناشناس در دسترس عموم باشد.
- از کلید خصوصی برای امضای درخواست به
update-cache
کنید. به عنوان مثال:echo -n > url.txt "/update-cache/c/s/example.com/article?amp_action=flush&_ts=$(date +%s)" && cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin
خروجی signature.bin یک امضای باینری RSA است.
- از کلید عمومی برای تأیید امضا استفاده کنید:
openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
- امضای RSA باینری را با استفاده از نوع وب ایمن base64 رمزگذاری کنید:
cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
- با استفاده از پارامتر پرس و جو
amp_url_signature
، امضای RSA رمزگذاری شده با base64 را به URL اضافه کنید.echo "$(cat url.txt)&_url_signature=$(cat base64.txt)"
کلید RSA را به روز کنید
اگر میخواهید کلید RSA خود را بهروزرسانی کنید، میتوانید از طریق پیوند حافظه پنهان AMP به کلید RSA دسترسی پیدا کنید و Google ممکن است در عرض چند ساعت کلید RSA جدید شما را بخزد. این لینک AMP Cache است:
https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub