मेरे पास एक एमवीसी वेब ऐप है जो एज़ूर में चल रहा है जो एमपी 3, पीडीएफ, इत्यादि जैसी बड़ी फाइलें प्रदान करता है ... जो क्लाउड स्टोरेज में संग्रहीत हैं। उन फ़ाइलों को सेवा देने का सबसे अच्छा तरीका क्या है, इसलिए लिंक/बटन पर क्लिक करते समय उपयोगकर्ता उन्हें डाउनलोड कर सकते हैं?एज़ूर क्लाउड स्टोरेज से बड़ी फ़ाइलों को डाउनलोड करने का सबसे अच्छा तरीका
आसान तरीका उन लोगों के साथ दिखाने के लिए सिर्फ यह है:
<a href="...blob.core.windows.net/container/file.mp3">
लेकिन तब उपयोगकर्ता डाउनलोड करने के लिए राइट क्लिक करना पड़ता है।
एक डाउनलोड के लिए मजबूर करने के लिए, आप एक फ़ाइल ActionResult लौट सकते हैं:
public ActionResult GetPDF(string filename)
{
return File(filename, "application/pdf", Server.HtmlEncode(filename));
}
इस के साथ दोष यह है (मुझे लगता है कि) webrole फ़ाइलों और स्ट्रीम करने के लिए उन्हें उत्पादन में पढ़ने के लिए है, जो होगा है संसाधनों का उपभोग करें, और संभावित रूप से बहुत से उपयोगकर्ताओं के साथ भूमिका निभाएं। जबकि सरल href लिंक समाधान मूल रूप से काम को बंद कर देता है ताकि ब्राउजर सीधे क्लाउड स्टोरेज से बात कर सके।
क्या मैं सही हूँ? क्या मुझे वेब्रोल पर अतिरिक्त काम के बारे में चिंतित होना चाहिए?
क्या वेबोलर बोझ किए बिना फ़ाइल डाउनलोड को मजबूर करने का कोई और तरीका है?
अद्यतन:
तो क्या मैं के साथ सामग्री प्रकार एमपी 3 के अपलोड करने गया था कर समाप्त हो गया "बाइनरी/ओकटेट धारा" - यह एक डाउनलोड संकेत मजबूर करने के लिए लगता है। सुनिश्चित नहीं है कि यह एक अच्छा अभ्यास है, लेकिन यह अब तक काम करता है।
धन्यवाद। हां, सामग्री प्रकार सही ढंग से सेट किया गया है (ऑडियो/एमपीईजी), और जब आप उस लिंक पर क्लिक करते हैं जो ब्राउज़र में चलता है। मैं उम्मीद कर रहा था कि Webrole के माध्यम से बिना डाउनलोड शुरू करने का कोई तरीका था। ऐसा लगता है कि यह जावास्क्रिप्ट के साथ करने योग्य होना चाहिए? आप बस ब्राउज़र को इसे खेलने के बजाए डाउनलोड करना चाहते हैं। – PeteShack
मुझे ब्लॉब स्टोरेज से डाउनलोड करते समय पहेली का गुम टुकड़ा मिला है, इसमें सामग्री-स्वभाव हेडर अटैचमेंट पर सेट नहीं है, इसलिए ब्राउज़र को यह नहीं पता कि आप इसे डाउनलोड के रूप में देखना चाहते हैं और नहीं बस इसके साथ कुछ करें (मुझे लगता है कि आप इसे Azure के प्री-रिलीज़ संस्करणों में सेट कर सकते हैं)। ब्लॉब और कंटेंट-डिस्पोजिशन के लिए एक साधारण खोज आपको एमवीसी के बाहर ऐसा करने के तरीके पर बड़ी संख्या में उदाहरण देगी। मुझे संदेह है कि यह सभी फाइल एक्शन परिणाम कर रहा है। – knightpfhor