मैं वर्तमान में अपने ड्रॉपबॉक्स ऐप निर्देशिका में अपने वेबसर्वर पर फ़ाइलों के लिए एक अपलोड तंत्र लागू कर रहा हूं।

जैसा कि एपीआई डॉक्स पर बताया गया है, /अपलोड एंडपॉइंट है (https: //www.dropbox.com/developers/documentation/http/documentation#files-upload) जो आकार में 150MB तक की फ़ाइलों को स्वीकार करता है। हालाँकि मैं 2GB तक के संभावित आकार वाले चित्रों और वीडियो के साथ काम कर रहा हूँ।

इसलिए मुझे अपलोड_सेशन एंडपॉइंट्स का उपयोग करने की आवश्यकता है। सत्र शुरू करने के लिए एक समापन बिंदु है (https://www .dropbox.com/developers/documentation/http/documentation#files-upload_session-start), डेटा जोड़ने और सत्र समाप्त करने के लिए।

वर्तमान में मेरे लिए यह स्पष्ट नहीं है कि इन अंतिम बिंदुओं का सटीक उपयोग कैसे किया जाए। क्या मुझे अपने सर्वर पर अपनी फ़ाइल को 150MB विखंडू में विभाजित करना है (मैं इसे एक वीडियो फ़ाइल के साथ कैसे करूँगा?) या क्या मैं किसी भी तरह फ़ाइल और एपीआई निर्दिष्ट कर सकता हूं (??) मेरे लिए विभाजन करता है? स्पष्ट रूप से नहीं, लेकिन मैं किसी भी तरह से अपना सिर नहीं ले सकता कि मुझे अपने वेबसर्वर पर भाग की गणना, विभाजन और स्टोर कैसे करना चाहिए और बीच में सत्र खोना नहीं चाहिए ...

किसी भी सलाह या आगे के प्रमुख लिंक की बहुत सराहना की जाती है। शुक्रिया!

2
Florian Müller 6 जुलाई 2019, 21:41

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि ग्रेग ने टिप्पणियों में उल्लेख किया है, आप तय करते हैं कि फाइलों के "भाग" को कैसे प्रबंधित किया जाए। अपने .NET उदाहरण के अलावा, ड्रॉपबॉक्स का जावास्क्रिप्ट में एक अच्छा अपलोड सत्र कार्यान्वयन है अपलोड उदाहरण का Dropbox API v2 JavaScript एसडीके.

उच्च स्तर पर, आप फ़ाइल को छोटे आकार (उर्फ "चंक्स") में विभाजित कर रहे हैं और उन्हें एक विशिष्ट क्रम में अपलोड_सेशन तंत्र में पास कर रहे हैं। अपलोड तंत्र में कुछ भाग होते हैं जिन्हें निम्नलिखित क्रम में उपयोग करने की आवश्यकता होती है:

  1. /files/upload_session/start पर कॉल करें। निम्न विधियों में परिणामी session_id को एक पैरामीटर के रूप में उपयोग करें ताकि ड्रॉपबॉक्स को पता चले कि आप किस सत्र के साथ सहभागिता कर रहे हैं।
  2. फ़ाइल के प्रत्येक "चंक" को /files/upload_session पर इंक्रीमेंटली पास करें /append_v2. कुछ बातों के बारे में पता होना चाहिए:

    • पहला कॉल एक cursor लौटाएगा, जिसका उपयोग एक विशिष्ट क्रम में फ़ाइल के टुकड़ों पर पुनरावृति करने के लिए किया जाता है। यह इस विधि के लिए लगातार प्रत्येक कॉल में एक पैरामीटर के रूप में पारित हो जाता है (कर्सर को हर प्रतिक्रिया पर अपडेट किया जा रहा है)।
    • अंतिम कॉल में प्रॉपर्टी "close": true शामिल होनी चाहिए, जो सत्र को बंद कर देती है ताकि इसे अपलोड किया जा सके।
  3. अंतिम cursor (और commit जानकारी) को /files/upload_session/finish. यदि आप प्रतिक्रिया में नई फ़ाइल मेटाडेटा देखते हैं, तो आपने यह किया!!

3
Taylor Krusen 9 जुलाई 2019, 04:07