الوصول إلى نقطة. دون استخدام غربول؟
-
26-09-2019 - |
سؤال
كنت أرغب في knw إذا كانت هناك طريقة يمكننا تحميل /تنزيل عملية. أضف إزالة بيانات عرض العرض دون استخدام Webrole؟ إذا كان طلبي لديه الكثير من واجهة المستخدم الرسومية ، فهناك العديد من webroles؟ في كل مكان أرى ملف Webrole Default.aspx.cs له علاقة مع النقطة بناءً على حدث ما ؛ ما هو جيد تمامًا ، لكن ماذا لو كان واجهة المستخدم الرسومية أكثر تعقيدًا؟
المحلول
يمكن الوصول إلى النقط من خلال مكالمات REST ، بحيث يمكنك في الواقع معالجة النقط مع تطبيق سطح مكتب محلي إذا كنت ترغب في ذلك ، حتى مكتوب في PHP أو Java.
بالنسبة إلى WebRoles: كل دور هو مجرد جهاز افتراضي يعمل على بعض الخادم في مكان ما. تشبه أدوار الويب أدوار العمال ، مع إضافة IIS. إذا كان لديك موقع ويب ، فيمكنك وضع موقع الويب بأكمله في غربول واحد. إذا كنت بحاجة إلى توسيع نطاقها للتعامل مع المزيد من المستخدمين ، فيمكنك إنشاء أكثر من "مثيل" لتلك Webrole - ثم يتم إرسال جميع طلبات موقع الويب الخاص بك إلى الحالات المختلفة ، كل منها تشغيل نفس الرمز. (نعم ، قد يكون لديك العديد من webroles لتطبيق معين - قد يكون هذا عمليًا اعتمادًا على تعقيد موقعك ، أو إذا كان لديك واجهة مستخدم مختلفة تمامًا للمسؤولين مقابل الزوار).
نصائح أخرى
لا تحتاج إلى استخدام دور ويب للوصول إلى Azure Storage (blob أو غير ذلك). يمكنك استخدام دور العامل ، أو يمكنك حتى الوصول إليه من تطبيق Windows Forms الذي يعمل على سطح مكتب ، أو تطبيق ويب/خدمة لا يعمل على Azure.
شاهد وثائق storageclient من Azure SDK للحصول على معلومات حول كيفية الوصول إلى Azure Storage - إنه أمر سهل للغاية.
لا تحتاج إلى مشروع Azure أو أدوار أخرى لاستخدام Blob. إذا كنت ترغب في استخدام عميل Azure في .NET Project ، يمكنك إضافة قسم إعدادات التكوين إلى تطبيقات التطبيق والرجوع إليه. عميل Azure هو غلاف للراحة. لديهم بعض خطوات توقيع الطلبات التي تجعل من الصعب تنفيذ المكالمات باستخدام WebRequests البسيطة.
<add key="AzureBlobStorage" value="AccountName=youraccountname;AccountKey=YOURKEYeZgfgdfg==;DefaultEndpointsProtocol=https"/>
يمكنك الحصول على عميل Blob:
public CloudBlobClient GetBlobClient()
{
var accountBlob = ConfigurationManager.AppSettings["AzureBlobStorage"];
var account = CloudStorageAccount.Parse(accountBlob.ToString());
return account.CreateCloudBlobClient();
}
public CloudBlob GetBlob(BlobItem blobItem)
{
var client = GetBlobClient();
var cloudBlobContainer = client.GetContainerReference(blobItem.ContainerReference);
return cloudBlobContainer.GetBlobReference(blobItem.FileName);
}
Blobitem هو مجرد غلاف. في الأساس ، تحتاج إلى اسم المجلد واسم ملف للوصول إلى نقطة.
public class BlobItem
{
[Required]
[Display(Name = "Container")]
public string ContainerReference { get; set; }
[Required]
[Display(Name = "File name")]
public string FileName { get; set; }
[Required]
[UIHint("MultilineText")]
public string Content { get; set; }
/// <summary>
/// to use in stream mode
/// </summary>
public Stream Stream { get; set; }
}