का उपयोग कर फ़ाइल अपलोड करें इस प्रश्न की पृष्ठभूमि वर्चुअल फ़ाइल सिस्टम पर आधारित है जो मैं विकसित कर रहा हूं। मैं जिस अवधारणा का उपयोग कर रहा हूं वह विभिन्न प्रकार के स्टोरेज प्रकार i.e स्थानीय फ़ाइल सिस्टम, ड्रॉपबॉक्स और अमेज़ॅन एस 3 के लिए वायरलल पथ प्रदाता है। वर्चुअल फ़ाइल के लिए मेरा बेस क्लास इस तरह दिखता है:वर्चुअल पथ प्रदाता और अमेज़ॅन एस 3 एसडीके
public abstract class CommonVirtualFile : VirtualFile {
public virtual string Url {
get { throw new NotImplementedException(); }
}
public virtual string LocalPath {
get { throw new NotImplementedException(); }
}
public override Stream Open() {
throw new NotImplementedException();
}
public virtual Stream Open(FileMode fileMode) {
throw new NotImplementedException();
}
protected CommonVirtualFile(string virtualPath) : base(virtualPath) { }
}
दूसरी ओपन विधि का कार्यान्वयन मेरा प्रश्न है। अगर हम स्थानीय फाइल सिस्टम के लिए मेरे कार्यान्वयन पर देखने के डिस्क पर एक फ़ाइल को सहेजने यानी यह इस तरह दिखता है:
public override Stream Open(FileMode fileMode) {
return new FileStream("The_Path_To_The_File_On_Disk"), fileMode);
}
इस कुछ इस तरह दिखेगा मैं स्थानीय फाइल सिस्टम पर एक फ़ाइल को बचाने के लिए करना चाहते हैं:
const string virtualPath = "/assets/newFile.txt";
var file = HostingEnvironment.VirtualPathProvider.GetFile(virtualPath) as CommonVirtualFile;
if (file == null) {
var virtualDir = VirtualPathUtility.GetDirectory(virtualPath);
var directory = HostingEnvironment.VirtualPathProvider.GetDirectory(virtualDir) as CommonVirtualDirectory;
file = directory.CreateFile(VirtualPathUtility.GetFileName(virtualPath));
}
byte[] fileContent;
using (var fileStream = new FileStream(@"c:\temp\fileToCopy.txt", FileMode.Open, FileAccess.Read)) {
fileContent = new byte[fileStream.Length];
fileStream.Read(fileContent, 0, fileContent.Length);
}
// write the content to the local file system
using (Stream stream = file.Open(FileMode.Create)) {
stream.Write(fileContent, 0, fileContent.Length);
}
क्या मैं चाहता हूँ कि अगर मैं अपने अमेज़न S3 आभासी पथ प्रदाता पर स्विच मैं इस कोड बिना किसी परिवर्तन के सीधे काम करने के लिए इसलिए चीजों को योग करने के लिए चाहता हूँ, मैं कैसे इस अमेज़न S3 SDK का उपयोग करने को सुलझाने और कैसे कर सकते हैं चाहिए मैं अपने अमेज़ॅन एस 3 आभासी पथ प्रदाता में अपना ओपन (फ़ाइलमोड फ़ाइल मोड) विधि लागू करता हूं?
आपको [एसडीके] (http://aws.amazon.com/sdkfornet/) का उपयोग करना चाहिए। –
@AaronMcIver क्षमा करें, मेरा प्रश्न अस्पष्ट था .. मैंने और जानकारी – Marcus
जोड़ दी है, मुझे लगता है कि आपको क्या करने की आवश्यकता होगी एक इंटरफेस/फैक्ट्री डिज़ाइन है जो विभिन्न क्लाउड स्टोरेज प्रदाता एसडीके कार्यान्वयन को समायोजित करता है। जांचें कि आप अपने किसी भी पेटेंट का उल्लंघन नहीं कर रहे हैं, उदाहरण के लिए [डेविड एब्बो के माइक्रोसॉफ्ट पेटेंट] (http://www.google.com/patents/US20060206452) - क्या आप एक बहुत अच्छा प्रौद्योगिकी विकास की तरह आवाज करने की कोशिश कर रहे हैं! सौभाग्य!! –