कैसे एक बूँद कंटेनर में एक उप निर्देशिका बनाने के लिए
उदाहरण के लिए,
मेरे बूँद कंटेनर में http://veda.blob.core.windows.net/document/
अगर मैं कुछ फ़ाइलों को संग्रहीत करता हूं तो यह होगा
अब, एक उप निर्देशिका कैसे बनायें
ताकि मैं फाइल स्टोर कर सकूं
कैसे एक बूँद कंटेनर में एक उप निर्देशिका बनाने के लिए
उदाहरण के लिए,
मेरे बूँद कंटेनर में http://veda.blob.core.windows.net/document/
अगर मैं कुछ फ़ाइलों को संग्रहीत करता हूं तो यह होगा
अब, एक उप निर्देशिका कैसे बनायें
ताकि मैं फाइल स्टोर कर सकूं
जवाबों:
ईगन ने जो कहा, उस पर जोड़ने के लिए, बस अपने फोल्डर को "फोल्डर / 1.txt" कहा जाता है, और यह काम करेगा। कोई निर्देशिका बनाने की आवश्यकता नहीं है।
वास्तव में कंटेनरों की एक ही परत है। आप वस्तुतः स्तरित भंडारण की तरह "फाइल-सिस्टम" बना सकते हैं, लेकिन वास्तव में सब कुछ 1 परत में होगा, जिस कंटेनर में यह है।
स्टोरेज की तरह एक वर्चुअल "फाइल-सिस्टम" बनाने के लिए, आपके पास ऐसे ब्लॉब नाम हो सकते हैं, जिनमें '/' लिखा होता है, ताकि आप अपनी पसंद के हिसाब से जो चाहें स्टोर कर सकें। इसके अलावा, महान बात यह है कि आप एक आभासी स्तर पर एक बूँद के लिए खोज कर सकते हैं, एक आंशिक स्ट्रिंग देकर, '/' तक।
खोज के लिए पथ और आंशिक स्ट्रिंग में '2' जोड़ते हुए ये 2 चीजें, एक साथ एक वर्चुअल "फाइल-सिस्टम" स्टोरेज बनाती हैं।
@ Afr0 द्वारा एक टिप्पणी है कि कैसे फोल्डर पर फ़िल्टर किया जाए।
GetDirectoryReferenceकंटेनर के माध्यम से लूपिंग या लूपिंग का उपयोग करने के दो तरीके हैं और प्रकार की जांच करते हैं। नीचे दिया गया कोड C # में है
CloudBlobContainer container = blobClient.GetContainerReference("photos");
//Method 1. grab a folder reference directly from the container
CloudBlobDirectory folder = container.GetDirectoryReference("directoryName");
//Method 2. Loop over container and grab folders.
foreach (IListBlobItem item in container.ListBlobs(null, false))
{
if (item.GetType() == typeof(CloudBlobDirectory))
{
// we know this is a sub directory now
CloudBlobDirectory subFolder = (CloudBlobDirectory)item;
Console.WriteLine("Directory: {0}", subFolder.Uri);
}
}
इसे और अधिक गहराई से कवरेज के लिए पढ़ें: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori
यदि आप Microsoft Azure Storage Explorer का उपयोग करते हैं , तो एक "नया फ़ोल्डर" बटन है जो आपको एक कंटेनर में एक फ़ोल्डर बनाने की अनुमति देता है। यह वास्तव में एक आभासी फ़ोल्डर है:
आपको उप निर्देशिका बनाने की आवश्यकता नहीं है। बस ब्लॉब कंटेनर बनाएं और नीचे दिए गए कोड के रूप में चर फ़ाइलनाम की तरह फ़ाइल नाम का उपयोग करें :
string filename = "document/tech/user-guide.pdf";
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConnectionString);
CloudBlockBlob blob = cloudBlobContainer.GetBlockBlobReference(filename);
blob.StreamWriteSizeInBytes = 20 * 1024;
blob.UploadFromStream(fileStream); // fileStream is System.IO.Stream
जैसा कि @Egon ऊपर उल्लेख किया गया है, BLOB भंडारण में कोई वास्तविक फ़ोल्डर प्रबंधन नहीं है।
आप फ़ाइल नाम में '/' का उपयोग करके फ़ाइल सिस्टम की कुछ विशेषताएं प्राप्त कर सकते हैं, लेकिन इसकी कई सीमाएँ हैं (उदाहरण के लिए, यदि आपको "फ़ोल्डर" नाम बदलने की आवश्यकता है तो क्या होगा?)।
एक सामान्य नियम के रूप में, मैं अपनी फ़ाइलों को यथासंभव कंटेनर में समतल रखूंगा , और मेरे एप्लिकेशन को जो भी संरचना मैं अंत उपयोगकर्ताओं को उजागर करना चाहता हूं, प्रबंधित करें (उदाहरण के लिए मेरे डेटाबेस में नेस्टेड फ़ोल्डर संरचना का प्रबंधन करें , प्रत्येक के लिए एक रिकॉर्ड है फ़ाइल, कंटेनर-नाम और फ़ाइल-नाम का उपयोग करके बीओएलबी को संदर्भित करता है)।
Azure नमूना प्रथम-सर्वर-रहित अनुप्रयोग का प्रयास करते समय समान समस्या मिली ।
यहाँ जानकारी है कि कैसे मैंने $ वेब के सामने से हटाकर हल किया।
नोट: $ वेब कंटेनर स्वचालित रूप से बनाया गया था जबकि स्थैतिक वेबसाइट को सक्षम किया गया था। कहीं भी $ रूट कंटेनर नहीं देखा।
//getting Invalid URI error while following tutorial as-is
az storage blob upload-batch -s . -d \$web --account-name firststgaccount01
//Remove "\" @destination param
az storage blob upload-batch -s . -d $web --account-name firststgaccount01
यहाँ मैं इसे Node.JS पर CoffeeScript में कैसे करूँ:
blobService.createBlockBlobFromText 'containerName', (path + '$$$.$$$'), '', (err, result)->
if err
console.log 'failed to create path', err
else
console.log 'created path', path, result
C#