2009-07-06 11 views
14

क्या अमेज़ॅन क्लाउडफ्रंट (अमेज़ॅन की सीडीएन सेवा) पर संग्रहीत फ़ाइलों को अपडेट करने का कोई तरीका है? ऐसा लगता है कि यह हमारे द्वारा बनाई गई फ़ाइल का कोई भी अपडेट नहीं लेगा (उदा। फ़ाइल को हटाकर और उसी फ़ाइल नाम के साथ पहले को संग्रहीत करना)। क्या मुझे नई फ़ाइल सामग्री प्रकाशित करने के लिए किनारे सर्वर से फ़ाइलों को निकालने के लिए एक अद्यतन प्रक्रिया को स्पष्ट रूप से ट्रिगर करना है?मैं अमेज़ॅन के सीडीएन (क्लाउडफ्रंट) पर फ़ाइलों को कैसे अपडेट कर सकता हूं?

आपकी मदद के लिए धन्यवाद

+0

कृपया इस प्रश्न को http://serverfault.com/ पर पूछने का प्रयास करें। –

उत्तर

12

अमेज़न एक शक्ति कम फ़ीचर गयी। This is API Reference। API संदर्भ से

नमूना अनुरोध:

POST /2010-08-01/distribution/[distribution ID]/invalidation HTTP/1.0 
Host: cloudfront.amazonaws.com 
Authorization: [AWS authentication string] 
Content-Type: text/xml 

<InvalidationBatch> 
    <Path>/image1.jpg</Path> 
    <Path>/image2.jpg</Path> 
    <Path>/videos/movie.flv</Path> 
    <CallerReference>my-batch</CallerReference> 
</InvalidationBatch> 
1

मैं पहले से ही serverfault पर यह देख याद करने लगते हैं, लेकिन यहाँ जवाब है:

तक "अमेज़न CDN" मैं आपको "CloudFront" मतलब यह मानें कि?

यह कैश की गई, इसलिए यदि आप की जरूरत है यह अभी अद्यतन करने की आप एक नया नाम चुनना होगा (के रूप में करने के लिए "नया संस्करण 24hours में दिखाई जाएगी" का विरोध किया) है। "Logo.png" के बजाय, "logo.png - 0" का उपयोग करें, और फिर "logo.png - 1" का उपयोग करके इसे अपडेट करें, और उस पर इंगित करने के लिए अपना एचटीएमएल बदलें।

अमेज़ॅन क्लाउडफ़्रंट "फ़्लश" करने का कोई तरीका नहीं है।

संपादित करें: यह संभव नहीं था, अब यह है। इस उत्तर में टिप्पणियां देखें।

+3

यह अब सटीक नहीं है। – ceejayoz

+0

देखें http://stackoverflow.com/questions/1268158/force-cloudfront-distribution-file-update – RSG

+0

यह सच नहीं है, आप कैश – rsabir

2

सेट टीटीएल = 1 घंटा और की जगह

http://developer.amazonwebservices.com/connect/ann.jspa?annID=655

+0

कहां निर्दिष्ट करें? –

+0

आप "व्यवहार" टैब के तहत क्लाउडफ़्रंट वितरण विवरण पर टीटीएल सेट कर सकते हैं। "ऑब्जेक्ट कैशिंग" = "कस्टमाइज़ करें" सक्षम करें और आपको वितरण के लिए डिफ़ॉल्ट सेट करने में सक्षम होना चाहिए। सक्रिय रूप से विकास करते समय लघु टीटीएल ठीक है, लेकिन यदि कई अपडेट नहीं हैं तो अवधि को बढ़ाया जाना चाहिए। – Cody

1

माणिक में, यहां तक ​​अमान्यकरण पर कोहरे मणि

AWS_ACCESS_KEY = ENV['AWS_ACCESS_KEY_ID'] 
AWS_SECRET_KEY = ENV['AWS_SECRET_ACCESS_KEY'] 
AWS_DISTRIBUTION_ID = ENV['AWS_DISTRIBUTION_ID'] 

conn = Fog::CDN.new(
    :provider => 'AWS', 
    :aws_access_key_id => AWS_ACCESS_KEY, 
    :aws_secret_access_key => AWS_SECRET_KEY 
) 

images = ['/path/to/image1.jpg', '/path/to/another/image2.jpg'] 

conn.post_invalidation AWS_DISTRIBUTION_ID, images 

का उपयोग कर इसे, सभी अमेज़ॅन एज सर्वरों पर प्रक्रिया और रीफ्रेश करने के लिए अभी भी 5-10 मिनट लगते हैं

13

यहां क्लाउडफ्रंट नियंत्रण कक्ष का उपयोग करके मैं इसे कैसे करता हूं।

  1. सेवाओं की सूची से क्लाउडफ्रंट का चयन करें।
  2. यकीन वितरण से शीर्ष बाईं ओर चयनित है
  3. अगला सूची से संबंधित वितरण (आईडी के तहत) के लिंक पर क्लिक करें।

enter image description here

  1. Invalidations टैब चुनें।
  2. पर क्लिक करें अमान्यता बटन बनाएं और उन फ़ाइलों का स्थान दर्ज करें जिन्हें आप अमान्य (अपडेटेड) करना चाहते हैं।

उदाहरण के लिए:

enter image description here

  1. फिर अमान्य बटन पर क्लिक करें और आप अब inprogress देखना चाहिए स्थिति के अंतर्गत।

enter image description here

यह आमतौर पर आपके अनुरोध के आकार के आधार पर, अपने अमान्यकरण अनुरोध को पूरा करने 10 से 15 मिनट लगते हैं।

एक बार यह पूरा होने के बाद आप जाने के लिए अच्छे हैं।

युक्ति: बार जब आप कुछ invalidations बनाया है, तो आप वापस आ जाओ और रद्द करने के लिए एक ही फाइल को सलेक्ट बॉक्स का उपयोग की जरूरत है और कॉपी लिंक तो यह और भी तेज बनाने उपलब्ध हो जाएगा।

+1

नोट: नई फ़ाइलों को अपलोड करने से पहले आपको कैश की गई फ़ाइलों को अमान्य करना होगा। जब मैं संशोधन अपलोड करता हूं तो अद्यतन फ़ाइलों को धक्का देने में मुझे परेशानी हो रही थी, फिर पुराने कैश को अमान्य कर दें। – Cody

+1

मैं वास्तव में विपरीत पाया कि मैं अपनी नई फ़ाइल अपलोड करना सुनिश्चित करता हूं और फिर अमान्यता चलाता हूं। – CoalaWeb

संबंधित मुद्दे