के भीतर सीटू में एक ज़िप फ़ाइल बनाना मेरे पास एक कंटेनर में ब्लॉब स्टोरेज खाते में संग्रहीत फ़ाइलें हैं। मुझे पहले कंटेनर से फ़ाइलों वाले दूसरे कंटेनर में एक ज़िप फ़ाइल बनाने की आवश्यकता है।एज़ूर ब्लोब स्टोरेज
मेरे पास एक समाधान है जो एक कार्यकर्ता भूमिका और डॉटनेटजिप का उपयोग करके काम करता है, लेकिन ज़िप फ़ाइल आकार में 1 जीबी तक समाप्त हो सकती है, इसलिए मुझे चिंता है कि MemoryStream
ऑब्जेक्ट्स आदि का उपयोग करके सभी कार्य प्रक्रियाओं को करने का सबसे अच्छा तरीका नहीं है। ऐसा करने का मेरी सबसे बड़ी चिंता स्मृति उपयोग और संसाधनों को मुक्त करने के लिए है कि यह प्रक्रिया दिन में कई बार हो सकती है।
using (ZipFile zipFile = new ZipFile())
{
foreach (var uri in uriCollection)
{
var blob = new CloudBlob(uri);
byte[] fileBytes = blob.DownloadByteArray();
using (var fileStream = new MemoryStream(fileBytes))
{
fileStream.Seek(0, SeekOrigin.Begin);
byte[] bytes = CryptoHelp.EncryptAsBytes(fileStream, "password", null);
zipFile.AddEntry("entry name", bytes);
}
}
using (var zipStream = new MemoryStream())
{
zipFile.Save(zipStream);
zipStream.Seek(0, SeekOrigin.Begin);
var blobRef = ContainerDirectory.GetBlobReference("output uri");
blobRef.UploadFromStream(zipStream);
}
}
किसी को एक बेहतर दृष्टिकोण कृपया सुझाव दे सकते हैं:
नीचे बहुत कुछ नीचे कार्यकर्ता की भूमिका में बुनियादी प्रक्रिया दिखा कोड छीन है?
+1। ;) – TrueWill
हाँ, संसाधन उपयोग जैसे स्मृति, क्लाउड सेवाओं के भीतर सीपीयू webrole/workrole हमेशा चिंतित है। यह माना जा सकता है। +1 –