2011-11-02 19 views
26

मेरे पास एक परिदृश्य है जहां हमारे पास s3 पर अपलोड करने वाले कई ग्राहक हैं।नई एस 3 वस्तुओं की अधिसूचना

  • यह जानने के लिए सबसे अच्छा तरीका क्या है कि एक नई फ़ाइल है?
  • क्या यह यथार्थवादी/अच्छा विचार है, मेरे लिए कभी भी कुछ सेकंड बाल्टी को मतदान करने के लिए?

उत्तर

25

अद्यतन:

नवंबर 2014 से, एस 3 का समर्थन करता है निम्नलिखित घटनाओं की सूचनाएँ:

  • s3:ObjectCreated:Put - एक वस्तु एक HTTP PUT आपरेशन द्वारा बनाया गया था।
  • s3:ObjectCreated:Post - एक वस्तु HTTP पोस्ट ऑपरेशन द्वारा बनाई गई थी।
  • s3:ObjectCreated:Copy - एक ऑब्जेक्ट को एस 3 कॉपी ऑपरेशन बनाया गया था।
  • s3:ObjectCreated:CompleteMultipartUpload - एक ऑब्जेक्ट एस 3 मल्टी-पार्ट अपलोड के पूरा होने से बनाया गया था।
  • s3:ObjectCreated:* - एक ऑब्जेक्ट ऊपर सूचीबद्ध घटना प्रकारों में से एक या भविष्य में जोड़े गए एक समान ऑब्जेक्ट निर्माण ईवेंट द्वारा बनाया गया था।
  • s3:ReducedRedundancyObjectLost - कम रिडंडेंसी के साथ संग्रहीत एक एस 3 ऑब्जेक्ट खो गया है।

ये सूचनाएं Amazon SNS, SQS या लिए जारी किया जा सकता। इन नई अधिसूचनाओं के बारे में अधिक जानकारी के लिए Alan's answer में लिंक किया गया ब्लॉग पोस्ट देखें।

मूल उत्तर:

हालांकि अमेज़न S3 जगह यह कुछ भी लेकिन S3 के लिए सूचनाएं समर्थन नहीं करता है में एक बाल्टी अधिसूचना प्रणाली है: ReducedRedundancyLostObject घटना (उनके एपीआई में प्राप्त बाल्टी अधिसूचना खंड देखें)।

वर्तमान में नई वस्तुओं की जांच करने का एकमात्र तरीका प्रीसेट समय अंतराल पर बाल्टी को मतदान करना है या अपलोड क्लाइंट (संभवतः अमेज़ॅन एसएनएस पर आधारित) में अपना स्वयं का अधिसूचना तर्क बनाना है।

11

पुश सूचनाएं अब S3 में निर्मित होते हैं:

http://aws.amazon.com/blogs/aws/s3-event-notification/

आप जब एक वस्तु रख सकते हैं या पोस्ट या एक बहु-भाग अपलोड समाप्त हो गया है के माध्यम से बनाई गई है SQS या एसएनएस को सूचनाएं भेज सकते हैं।

0

आज आपका सबसे अच्छा विकल्प एडब्ल्यूएस लैम्ब्डा सेवा का उपयोग कर रहा है। आप या तो node.js जावास्क्रिप्ट, जावा या पायथन का उपयोग करके एक लैम्ब्डा लिख ​​सकते हैं (शायद अधिक विकल्प समय में जोड़े जाएंगे)। लैम्ब्डा सेवा आपको उन कार्यों को लिखने की अनुमति देती है जो फ़ाइल अपलोड के रूप में S3 से ईवेंट का जवाब देती हैं। लागत प्रभावी, स्केलेबल और उपयोग करने में आसान है।