2016-02-01 12 views
8

मैं Django के लिए विभिन्न थंबनेलिंग ऐप्स के बारे में पढ़ रहा हूं और कोशिश कर रहा हूं। ये आवश्यकताएँ हैं:Django आसान थंबनेल बनाम सॉर्ल-थंबनेल अंतर

  • सभी उत्पन्न थंबनेल मूल छवियों से अलग एक S3 बाल्टी में सहेजा जाना चाहिए, यानी अलग भंडारण वर्ग

  • छवि उदाहरण हटा दी जाती है, के साथ साथ मूल छवि फ़ाइल सभी जेनरेट किए गए थंबनेल को

  • महंगा अक्षमता को कम करना चाहिए, पूर्व। किसी थंबनेल का url लाई जा रही है डीआरएफ में क्रमानुसार करने S3 बाल्टी में नहीं देखना चाहिए अगर यह हर बार मौजूद है आदि

VersatileImageField पहली आवश्यकता विफल रहता है को देखने के लिए,। ImageKit दूसरी आवश्यकता में विफल रहता है। तीसरी आवश्यकता है जहां मैं सबसे उलझन में हूं; मैं अपने आप को सर्वोत्तम प्रथाओं पर सूचित करने की कोशिश कर रहा हूं लेकिन जानकारी खंडित है और अब तक जो कुछ मैंने सीखा है उसके आधार पर निर्णय लेने में मुझे विश्वास नहीं है।

मैं क्या पढ़ा है से, मेरी धारणा है कि सबसे कुशल व्यवहार इस प्रकार होगा:

  • थंबनेल पर तुरंत उत्पन्न बचाने के लिए और मान यह हमेशा थंबनेल तक पहुँचने के लिए मौजूद है
  • , उत्पन्न मूल छवि के फ़ाइल नाम और थंबनेल आयाम/गुणवत्ता के आधार पर, क्योंकि हम जानते हैं कि यह निश्चित रूप से
  • post_delete सभी थंबनेल और मूल फ़ाइल को नष्ट करेगा मौजूद यूआरएल

मुझे उन दृष्टिकोणों में अंतर के बारे में जानने में सबसे अधिक दिलचस्पी होगी जो आसान-थंबनेल और सॉर्ल-थंबनेल लेते हैं (यदि वे प्रक्रिया के साथ संरेखित करते हैं जो मैंने संक्षेप में उल्लिखित रूप से उल्लिखित किया है या यदि उनके पास कुछ और अधिक कुशल है), और फायदे/उनकी प्रत्येक पद्धति में नुकसान।

+0

आपने अपनी समस्या का समाधान कैसे किया? – wiesson

+0

@weisson मैंने इन तीनों ऐप्स की कोशिश की, सभी अपूर्ण थे और बहुत राय भी थी (इसके बारे में जाने का कोई और तरीका नहीं है)। मैं pica.js. के साथ क्लाइंट-साइड थंबनेलिंग का उपयोग कर रहा हूँ छवि ब्लॉब सीधे S3 पर अपलोड किया गया है, कोई छवि फ़ील्ड या तकिया आवश्यक नहीं है। – dtgq

उत्तर

0

मुझे यकीन नहीं है कि यह सहायक है, लेकिन मैंने अतीत में आसान थंबनेल का उपयोग किया है और मुझे पूरा यकीन है कि यह उन सभी चीजों को करता है जिन्हें आप पूछ रहे हैं यदि आप इसे थोड़ा सा कॉन्फ़िगर करते हैं । सहेजने के फ़ंक्शन के साथ इसे कॉन्फ़िगर करना थोड़ा मुश्किल है, क्योंकि सहेजने के फ़ंक्शन को कॉन्फ़िगर करने की परवाह नहीं है, लेकिन यह असंभव नहीं है। समस्या का कारण बनने वाली मुख्य बात यह है कि आपको थंबनेल विकल्प तक पहुंचने और उपयोग करने के लिए 'सहेजें और संपादन जारी रखना' का उपयोग करना होगा। यह तब तक दिखाई नहीं देगा जब तक आप ऐसा नहीं करते हैं क्योंकि आपने इसे सहेजने के बाद से इसे पहले से नहीं बनाया है।

def save() 
    found_id = self.id 
     super(Team, self).save(*args, **kwargs) 
     if self.image and found_id is None and self.original_image_width and self.original_image_height: 
      self.image = get_thumbnailer(self.image).get_thumbnail({ 
       'size': (self.original_image_width, self.original_image_height) 
      }).name 
     super(Team, self).save(*args, **kwargs) 
+0

क्या आप कोड का उदाहरण स्निपेट प्रदान कर सकते हैं कि आप सहेजने के फ़ंक्शन को कॉन्फ़िगर कैसे करेंगे, और आप 'सहेजें और संपादन जारी रखें' का उपयोग कैसे करेंगे? धन्यवाद। – dtgq

+0

मूल रूप से 'सहेजें और जारी रखें संपादन' के साथ क्या होता है यह है कि सहेजने का कार्य आसान_ थंबनेल यूआरएल उत्पन्न करेगा, मूल रूप से मूल छवि चौड़ाई और ऊंचाई के साथ-साथ थंबनेल के लिए, और एक छवि अपलोडर के लिए विकल्प भी बनाएंगे और मॉडल में थंबनेल स्टोर करने के लिए खंड – overstreetce

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