एएमपी कॉन्टेंट को अपडेट करना

Google एएमपी कैश से कॉन्टेंट हटाने और अपडेट करने के लिए, update-cache अनुरोध का इस्तेमाल करें. फ़िलहाल, update-cache सिर्फ़ यह पक्का करता है कि कॉन्टेंट को उसकी ज़्यादा से ज़्यादा उम्र के हिसाब से अपडेट किया गया हो. इसका मतलब है कि किसी संसाधन को ज़्यादा से ज़्यादा नया समय माना जा सकता है.

update-cache अनुरोध के लिए, डोमेन के मालिक को आरएसए कुंजी वाले अनुरोधों पर हस्ताक्षर करने और ऑरिजिन डोमेन पर एक स्टैंडर्ड यूआरएल से मिलती-जुलती सार्वजनिक कुंजी दिखाने की ज़रूरत होती है.

एएमपी कैश में हस्ताक्षर करने का अनुरोध करके, दस्तावेज़ के फ़िलहाल कैश मेमोरी में सेव किए गए वर्शन को फ़्लश किया जा सकता है. update-cache अनुरोध इस पते पर कॉल किया जाता है:

https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

पैरामीटर

update-cache अनुरोध के लिए ये पैरामीटर और वैल्यू ज़रूरी हैं:

पैरामीटर
example-com और example.com

ज़रूरी

एएमपी कैश यूआरएल के फ़ॉर्मैट में इस्तेमाल किए गए फ़ॉर्मैट के मुताबिक डोमेन नाम.
<cache.updateCacheApiDomainSuffix>

ज़रूरी

एएमपी कैश का डोमेन नाम. ज़्यादा जानकारी के लिए, update-cache के अनुरोध को कॉल करना देखें.
amp_ts=<ts_val>

ज़रूरी

यह पैरामीटर, UNIX-epoch टाइमस्टैंप के बारे में बताता है. इसका इस्तेमाल हमलाओं को फिर से चलाने से रोकने के लिए किया जाता है. मान सेकंड में वर्तमान समय होना चाहिए, जो वर्तमान समय से 1 मिनट पहले या के बाद का होना चाहिए.
amp_url_signature=<sig_val>

ज़रूरी

यह पैरामीटर, पूरे अनुरोध के पाथ का आरएसए हस्ताक्षर दिखाता है (आरएसए कुंजी जनरेट करें देखें). इसमें amp_action और amp_ts शामिल हैं, लेकिन खुद हस्ताक्षर शामिल नहीं हैं.

दिशा-निर्देश

आपको update-cache के दिशा-निर्देशों का पालन करना होगा:

  • एएमपी कैश होस्टनेम (encoded.ampproject.org) को हस्ताक्षर से बाहर रखा गया है, ताकि हस्ताक्षर करने वाले एक ही अनुरोध को, कई एएमपी कैश ऑपरेटर के साथ सबमिट किया जा सके.
  • हस्ताक्षर की पुष्टि करने के लिए, आपको एएमपी दस्तावेज़ और डोमेन के तय जगह पर, सार्वजनिक आरएसए कुंजी दिखानी होगी. कुंजी जनरेट करने के लिए, आरएसए कुंजी जनरेट करें देखें. उदाहरण के लिए:
    https://example.com/.well-known/amphtml/apikey.pub
  • सार्वजनिक कुंजी को रोबोट नहीं किया जाना चाहिए.
  • यूआरएल एचटीटीपीएस होना चाहिए.
  • डोमेन वही डोमेन होना चाहिए जिसे आप अपडेट करना चाहते हैं, न कि किसी सब या सुपर डोमेन के.
  • आपको कीम को PEM फ़ॉर्मैट में प्रकाशित करना होगा और कुंजी को कॉन्टेंट-टाइप और कोटेशन/टेक्स्ट/कोटेशन के साथ दिखाना होगा.
  • एएमपी कैश हमेशा अनुरोध से उसी डोमेन की सार्वजनिक कुंजी को फ़ेच करता है, भले ही दस्तावेज़ में किसी भी rel=canonical टैग के ज़रिए बताए गए डोमेन पर ध्यान न दिया गया हो. अगर ऑरिजिन डोमेन उस जगह पर एचटीटीपी रीडायरेक्ट दिखाता है जिसे अपडेट किया जाना है, तो सिर्फ़ अनुरोध किए गए पाथ को कैश मेमोरी से फ़्लश किया जाता है.

कॉन्टेंट को अपडेट करना या हटाना

कॉन्टेंट को मूल रूप से हटाने के बाद, आपके पास Google एएमपी कैश से कॉन्टेंट को अपडेट करने या हमेशा के लिए हटाने के लिए, update-cache का इस्तेमाल करने का विकल्प है. कॉन्टेंट को अपडेट करने या हटाने के लिए, नीचे दिया गया तरीका अपनाएं:

  1. यह फ़ाइल फ़ेच करें:
    https://cdn.ampproject.org/caches.json
  2. JSON फ़ाइल की caches एंट्री के हिसाब से इटरेट करें.
  3. उस caches को चुनें जिसके साथ काम करना है.
  4. हर cache एंट्री से, updateCacheApiDomainSuffix का इस्तेमाल करके update-cache के अनुरोध को कॉल करें.
  5. नीचे दिए गए फ़ॉर्मैट का इस्तेमाल करके यूआरएल बनाएं:
    https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

आरएसए कुंजी जनरेट करें

OpenSSL प्रोजेक्ट, कमांड-लाइन आरएसए कुंजियों को जनरेट और मैनेज करने के लिए कमांड-लाइन टूल देता है. आप आरएसए कुंजियां भी जनरेट कर सकते हैं और OpenGL लाइब्रेरी या किसी मिलते-जुलते क्रिप्टो एपीआई (node-crypto, NSS या GnuTLS) की मदद से उन्हें प्रोग्रामैटिक तरीके से मैनेज कर सकते हैं.

  1. टेक्स्ट वाले पीईएम फ़ॉर्मैट में आरएसए कुंजी का एक जोड़ा इस तरह जनरेट करें:
    openssl genrsa 2048 > private-key.pem
    openssl rsa -in private-key.pem -pubout >public-key.pem
  2. डोमेन की सार्वजनिक कुंजी को इस जगह रीफ़्रेश करने के लिए, उसे यहां पोस्ट करें:
    https://example.com/.well-known/amphtml/apikey.pub

    यूआरएल एचटीटीपीएस होना चाहिए. इस कुंजी को सार्वजनिक तौर पर ऐक्सेस किया जाना चाहिए. पहचान छिपाने वाले उपयोगकर्ता इसे ऐक्सेस कर सकते हैं.

  3. update-cache के अनुरोध पर हस्ताक्षर करने के लिए, निजी कुंजी का इस्तेमाल करें. उदाहरण के लिए:
    echo -n > url.txt "/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=$(date +%s)" && cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin

    signer.bin का आउटपुट बाइनरी आरएसए हस्ताक्षर होता है.

  4. हस्ताक्षर की पुष्टि करने के लिए, सार्वजनिक कुंजी का इस्तेमाल करें:
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
  5. base64 के वेब-सुरक्षित वैरिएंट का इस्तेमाल करके, बाइनरी आरएसए हस्ताक्षर को कोड में बदलें:
    cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
  6. amp_url_signature क्वेरी पैरामीटर का इस्तेमाल करके, यूआरएल में base64-एनकोडेड आरएसए हस्ताक्षर जोड़ें.
    echo "$(cat url.txt)&amp_url_signature=$(cat base64.txt)"

आरएसए कुंजी अपडेट करें

अगर आप अपनी आरएसए कुंजी अपडेट करना चाहते हैं, तो आप एएमपी कैश लिंक के ज़रिए आरएसए कुंजी ऐक्सेस कर सकते हैं. साथ ही, Google कुछ घंटों में आपकी नई आरएसए कुंजी को क्रॉल कर सकता है. यहां एएमपी कैश का लिंक दिया गया है:

https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub