پرش به مطلب اصلی

اتصال به فایل S3 در ASP.NET Core


در این بخش می خواهیم آموزش نحوه اتصال به فایل S3 در ASP.NET Core را در هاست ASP.NET Core دات نت کور به شما آموزش دهیم.

برای متصل کردن ASP.NET Core به سرویس فایل S3 باید یکسری تغییرات در پروژه خود اعمال کنید که این تغییرات در این صفحه قدم به قدم خدمت شما شرح داده خواهد شد.

نصب AWS SDK

برای استفاده از سرویس فایل S3 باید ابتدا با استفاده از دستور زیر کتابخانه مربوط به این سرویس را در پروژه خود نصب کنید.

Install-Package AWSSDK.S3

تنظیم کلیدها

حالا که کتابخانه مربوط نصب شد، باید مشخصات سرویس فایل S3 خود را با استفاده از env ها به ASP.NET Core معرفی کنید. که برای اینکار می توانید از فایل قسمت متغیر های محیطی چابکان استفاده کنید.

# name : value

ENDPOINT : <Bucket Endpoint>
BUCKET_NAME : <Bucket Name>
ACCESS_KEY : <Access Key>
SECRET_KEY : <Secret Key>

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

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

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

class Program
{
private const string accessKey = Environment.GetEnvironmentVariable("ACCESS_KEY");
private const string secretKey = Environment.GetEnvironmentVariable("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("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)
{
// ...
}
}
}
}