سؤال

كيفية إنشاء حاوية فرعية في موقع تخزين Azure.

من فضلك، اسمحوا لنا أن نعرف

هل كانت مفيدة؟

المحلول

لا يوفر Windows Azure مفهوم الحاويات الوحيدة ، لكنه يوفر آلية لاجتياز التسلسلات الورية عن طريق الاتفاقية وواجهة برمجة التطبيقات. يتم تخزين جميع الحاويات في نفس المستوى. يمكنك الحصول على وظائف Simliar باستخدام اتفاقيات التسمية لأسماء Blob الخاصة بك.

على سبيل المثال ، يمكنك إنشاء حاوية تسمى "المحتوى" وإنشاء النقط مع الأسماء التالية في تلك الحاوية:

content/blue/images/logo.jpg
content/blue/images/icon-start.jpg
content/blue/images/icon-stop.jpg

content/red/images/logo.jpg
content/red/images/icon-start.jpg
content/red/images/icon-stop.jpg

ملحوظة أن هذه النقط هي قائمة مسطحة مقابل حاوية "المحتوى". ومع ذلك ، فإن استخدام "/" كمحدد تقليدي ، يوفر لك الوظيفة لاجتيازها بطريقة وحيرة.

protected IEnumerable<IListBlobItem> 
          GetDirectoryList(string directoryName, string subDirectoryName)
{
    CloudStorageAccount account =
        CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
    CloudBlobClient client = 
        account.CreateCloudBlobClient();
    CloudBlobDirectory directory = 
        client.GetBlobDirectoryReference(directoryName); 
    CloudBlobDirectory subDirectory = 
        directory.GetSubdirectory(subDirectoryName); 

    return subDirectory.ListBlobs();
}

يمكنك بعد ذلك تسمية هذا على النحو التالي:

GetDirectoryList("content/blue", "images")

ملحوظة استخدام getBlobDirectoryReference و GetSubdirectory الأساليب و CloudBlobDirectory اكتب بدلا من CloudBlobContainer. هذه توفر وظائف اجتياز التي من المحتمل أن تبحث عنها.

هذا يجب أن يساعدك في البدء. اسمحوا لي أن أعرف إذا لم يجيب هذا على سؤالك:

بفضل نيل ماكنزي للإلهام

نصائح أخرى

هل تشير إلى تخزين Blob؟ إذا كان الأمر كذلك ، فإن التسلسل الهرمي هو ببساطة storageaccount/container/blobname. لا توجد حاويات متداخلة.

بعد قولي هذا ، يمكنك استخدام القطع المائلة في اسم النقطة لمحاكاة الحاويات المتداخلة في URI. نرى هذه المقالة على MSDN لتسمية التفاصيل.

أعود إلى إجابة Tobint وأريد إضافة شيء هذا الموقف لأنني أيضًا أحتاج بنفس الطريقة بتحميل ألعاب HTML إلى Azure Storage مع إنشاء هذه الدلائل:

  • الألعاب beautyshop index.html
  • Games Beautyshop Assets Apple.png
  • Games Beautyshop Assets romas.png
  • الألعاب beautyshop customfont.css
  • الألعاب beautyshop jQuery.js

لذلك بعد توصيتك ، حاولت تحميل المحتوى الخاص بي باستخدام أداة Azure Storage Explorer ويمكنك تنزيل الأداة والرمز المصدري باستخدام عنوان URL هذا: Azure Storage Explorer

بادئ ذي بدء ، حاولت التحميل عبر الأداة ، لكنه لا يسمح بتحميل الدليل الهرمي لأنك لا تحتاج: كيفية إنشاء دليل فرعي في حاوية Blob

أخيرًا ، قمت بتصحيح رمز المصدر للمستكشف Azure Explorer وقمت بتحرير طريقة background_uploadblobs وحقل UploadFilelist في ملف StorageAcountViewModel.cs. يمكنك تعديل ما تريده. ربما ارتكبت أخطاء إملائية:/ أنا آسف للغاية ولكن هذا هو موصي فقط.

لإنشاء مجلد فرعي في الحاوية ، أثناء تحميل ملف ، يمكنك الانتقال إلى الخيارات المتقدمة وتحديد التحميل إلى مجلد ، والذي سيقوم بإنشاء مجلد جديد في الحاوية وتحميل الملف إلى ذلك.

عينة من الرموز

string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top