netcore

پلتفرم .Net

(.Net Platform)

اتصال به ذخیره‌سازی ابری

بدون شک اتصال برنامه به یک ذخیره‌سازی ابری مطمئن برای نگهداری و ارائه فایل‌های استاتیک وب‌سایت یا داده‌های آپلود شده توسط کاربران، باعث اطمینان خاطر صاحبان کسب و کار و بهبود عملکرد برنامه‌ می‌شود.

فهرست عناوین:

نصب AWS SDK

از آنجا که ذخیره‌سازی ابری لیارا یک سرویس Object storage سازگار با پروتکل S3 است، شما می‌توانید با استفاده از AWS SDK‌، در زبان‌ها و فریم‌ورک‌های مختلفی این فضای ذخیره‌سازی را مدیریت کنید. حال برای اتصال به ذخیره‌سازی ابری در .Net باید با اجرای دستور زیر، پکیج AWSSDK.S3 را نصب کنید.

Install-Package AWSSDK.S3

تنظیم کلیدها

در مرحله‌ی بعد، به‌منظور امنیت و کنترل راحت‌تر مقادیر باید مشخصات فضای ذخیره‌سازی ابری اعم از کلیدها و آدرس اتصال به این سرویس را در بخش متغیرهای برنامه تنظیم کنید.

LIARA_ENDPOINT=<Liara Bucket Endpoint>
LIARA_BUCKET_NAME=<Bucket Name>
LIARA_ACCESS_KEY=<Access Key>
LIARA_SECRET_KEY=<Secret Key>

نحوه‌ی استفاده

نمونه کد برای دریافت لیست باکت‌های ایجاد شده:

using Amazon.S3;
using System;
using System.Threading.Tasks;
using Amazon;

class Program
{
  private const string accessKey = Environment.GetEnvironmentVariable("LIARA_ACCESS_KEY");
  private const string secretKey = Environment.GetEnvironmentVariable("LIARA_SECRET_KEY");

  static void Main(string[] args)
  {
    Task.Run(MainAsync).GetAwaiter().GetResult();
  }

  private static async Task MainAsync()
  {
    var config = new AmazonS3Config
    {
      RegionEndpoint = RegionEndpoint.USEast1,
      ServiceURL = Environment.GetEnvironmentVariable("LIARA_ENDPOINT")
    };
    var amazonS3Client = new AmazonS3Client(
      accessKey,
      secretKey,
      config);

    amazonS3Client.ExceptionEvent += OnAmazonS3Exception;

    var listBucketResponse = await amazonS3Client.ListBucketsAsync();

    foreach (var bucket in listBucketResponse.Buckets)
    {
      // ...
    }
    if (listBucketResponse.Buckets.Count > 0)
    {
      var bucketName = listBucketResponse.Buckets[0].BucketName;
      var listObjectsResponse = await amazonS3Client.ListObjectsAsync(bucketName);
      foreach (var obj in listObjectsResponse.S3Objects)
      {
        // ...
      }
    }
  }
}

متوجه شدم، برو گام بعدی!
;