2015-07-29 12 views
9

मैंने लैरवेल में एक एपीआई बनाया है, जो उपयोगकर्ताओं को ज़िप संग्रह अपलोड करने की अनुमति देता है जिसमें छवियां होती हैं।एकाधिक समवर्ती बड़े अपलोड हैंडलिंग

एक बार एक संग्रह अपलोड होने के बाद इसे S3 पर भेजा जाता है और फिर संसाधित होने के लिए दूसरी सेवा द्वारा उठाया जाता है।

मुझे लगता है कि बड़े अभिलेखागार के साथ PHP अपनी स्मृति सीमा को मारता रहता है। मुझे पता है कि मैं सीमा बढ़ा सकता हूं लेकिन यह एक फिसलन ढलान जैसा लगता है, खासकर जब मैं कल्पना करता हूं कि बड़ी फाइलें अपलोड करने वाले कई उपयोगकर्ता हैं।

मेरा वर्तमान समाधान पूरी तरह से मेरे सर्वर से गुजरना है और क्लाइंट को सीधे S3 पर अपलोड करने की अनुमति देना है। लेकिन यह बहुत असुरक्षित और स्पैमिंग/डीडीओएसिंग के लिए अतिसंवेदनशील लगता है।

मुझे लगता है कि मैं वास्तव में क्या उम्मीद कर रहा हूं इस बारे में एक चर्चा है कि इसे सुंदर तरीके से कैसे संभाला जा सकता है।

क्या इस तरह की प्रसंस्करण/समरूपता के लिए कोई भाषा अधिक उपयुक्त है? मैं आसानी से कुछ और करने के लिए अपलोडिंग प्रक्रिया को जन्म दे सकता था।

क्या एस 3 के बारे में मेरे मुद्दे बेकार हैं? मुझे पता है कि अनुरोध पर हस्ताक्षर किए जाने की आवश्यकता है लेकिन उत्पन्न टोकन पुन: प्रयोज्य हैं, इसलिए वे शोषक हैं।

संसाधन ऑनलाइन एनजीआईएनएक्स के बारे में बेहतर समाधान के रूप में बोलते हैं, क्योंकि इसमें एक अपलोड मॉड्यूल है जो सीधे फाइल पर अपलोड लिखता है, क्योंकि अपाचे स्मृति में बहुत कुछ करने की कोशिश कर रहा है (इस बारे में 100% निश्चित नहीं है)।

यदि मैं ईमानदार हूं तो मैं पूरी PHP अपलोड प्रक्रिया के बारे में बहुत अस्पष्ट हूं। क्या अनुरोध सीधे स्मृति में संग्रहीत है? यानी दस 50 एमबी अपलोड्स मेरे 500 एमबी रैम

+1

इस http://stackoverflow.com/questions/864570/very-large-uploads-with-php – Victory

+1

पर अपलोड की गई एक अच्छी चर्चा हार्ड ड्राइव पर डिफ़ॉल्ट रूप से संग्रहीत की जाती है (उदाहरण के लिए एक फ़ाइल में अस्थायी फ़ोल्डर)। मैं बाकी के बारे में निश्चित नहीं हूँ। अच्छा सवाल, यद्यपि! – Cully

+1

यह एक और अच्छा संसाधन हो सकता है: http://stackoverflow.com/questions/12609451/forward-a-file-upload-stream-to-s3-through-iteratee-with-play2-scala – Cully

उत्तर

0

चर्चा के लिए धन्यवाद के लिए स्मृति सीमा अपवाद का कारण बनेंगे। PHP पोस्ट/अपलोड प्रक्रिया में देखने के बाद, यह स्पष्ट हो गया कि चीजें कैसे काम करती हैं।

एसडीके अपडेट करना प्रारंभिक स्मृति सीमा मुद्दों को खत्म करने के लिए दिखाई दिया।

बेशक मैं अभी भी समेकन के मुद्दे पर विचार कर रहा हूं, लेकिन मुझे लगता है कि यह मेरी भाषा की तुलना में एक अपाचे/nginx/सर्वर कॉन्फ़िगरेशन/spec अनुकूलन समस्या है।

सभी को धन्यवाद!

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