हमारे पास एक फ़ाइल सिस्टम अबास्ट्रक्शन है जो हमें स्थानीय और क्लाउड (एज़ूर) स्टोरेज के बीच आसानी से स्विच करने की अनुमति देता है।क्लाउडब्लॉकब्लोब स्ट्रीम में जोड़ें
Stream OpenRead();
Stream OpenWrite();
हमारे आवेदन "समूह" एक फ़ाइल में दस्तावेजों का हिस्सा है:
पढ़ने और लिखने फ़ाइलों हम निम्नलिखित सदस्य के लिए। हमारे स्थानीय भंडारण प्रदाता OpenWrite
एक appendable धारा रिटर्न के लिए:
public Stream OpenWrite()
{
return new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite, BufferSize, useAsync: true);
}
Azure ब्लॉब भंडारण के लिए हम निम्न कार्य करें:
public Stream OpenWrite()
{
return blob.OpenWrite();
}
दुर्भाग्य से इस ओवरराइड करता है ब्लॉब सामग्री हर बार। क्या एक लिखने योग्य धारा को वापस करना संभव है जिसे जोड़ा जा सकता है?
यही वह है जो मैंने किया। अनुशंसित दृष्टिकोण 'क्लाउडब्लॉकब्लोब.पूटब्लॉक' प्रतीत होता है लेकिन हम अपने "बंडलिंग" को करने के लिए पीडीएफ लाइब्रेरी पर निर्भर हैं जो केवल एक इनपुट स्ट्रीम के साथ काम करेगा। –
'क्लाउडब्लॉकब्लोब.पूटब्लॉक' की अनुशंसा की जाती है क्योंकि यदि फ़ाइल बड़ी हो जाती है, तो उपर्युक्त दृष्टिकोण कुशल नहीं होगा क्योंकि आप संपूर्ण ब्लॉब डाउनलोड कर रहे हैं और इसे फिर से अपलोड कर रहे हैं। 'PutBlock' के साथ आप केवल संलग्न भाग अपलोड कर रहे हैं। –
हां यह हर बार ब्लॉब * प्रतिस्थापित * का एक बड़ा नकारात्मक पक्ष है। हालांकि, जैसा कि बताया गया है, हम अपनी पीडीएफ लाइब्रेरी द्वारा सीमित हैं। यदि यह कोई समस्या हो तो हम ब्लॉब की स्थानीय प्रति कैशिंग को देख सकते हैं। –