How to use AWS SDK for .NET with MinIO Server
MinIO 서버와 함께 .NET 용 AWS SDK를 사용하는 방법
aws-sdk-dotnet is the official AWS SDK for the .NET Framework.
aws-sdk-dotnet은 .NET Framework용 공식 AWS SDK입니다.
In this recipe we will learn how to use aws-sdk-dotnet with MinIO server.
이 레시피에서는 MinIO 서버와 함께 aws-sdk-dotnet을 사용하는 방법을 알아봅니다.
1. Prerequisites
1. 전제조건
Install MinIO Server from here.
여기에서 MinIO 서버를 설치하세요.
When running MinIO server locally, the MINIO_REGION environment variable must be set.
MinIO 서버를 로컬로 실행하는 경우 MINIO_REGION 환경 변수를 설정해야 합니다.
Install Visual Studio 2015, Visual Studio 2017 or Visual Studio Code.
Visual Studio 2015, Visual Studio 2017 또는 Visual Studio Code를 설치합니다.
Find installation of the Visual Studio editions here.
여기에서 Visual Studio 버전 설치를 찾아보세요.
2. Installation
2. 설치
aws-sdk-dotnet installation is available as Nuget package.
aws-sdk-dotnet 설치는 Nuget 패키지로 제공됩니다.
This package contains only libraries that are necessary for work with AWS S3.
이 패키지에는 AWS S3 작업에 필요한 라이브러리만 포함되어 있습니다.
Installation of the Nuget package is performed using "Manage Nuget Packages..." UI or by using Nuget Manager Console by typing Install-Package AWSSDK.S3.
Nuget 패키지 설치는 "Nuget 패키지 관리..."를 사용하거나 Nuget Manager 콘솔을 사용하여 Install-Package AWSSDK.S3을 입력하여 수행됩니다.
The installation will automatically download the library for the .NET platform which is compatible with your project. The package exists for .NET Frameworks 3.5 and 4.5 and also for .NET Core 1.1.
설치하면 프로젝트와 호환되는 .NET 플랫폼 용 라이브러리가 자동으로 다운로드됩니다. 이 패키지는 .NET Frameworks 3.5 및 4.5 및 .NET Core 1.1용으로 존재합니다.
The older (version 2) package is also available, but it is not recommended for use since it downloads all AWS SDK libraries and not only the S3 module.
이전 (버전 2) 패키지도 사용 가능하지만 S3 모듈뿐만 아니라 모든 AWS SDK 라이브러리를 다운로드하므로 사용하지 않는 것이 좋습니다.
3. Example
3. 예
The example code should be copied instead of the generated code in the Program.cs file.
Program.cs 파일에 생성된 코드 대신 예제 코드를 복사해야 합니다.
Create a console project in Visual Studio IDE and replace the generated Program.cs with the code below.
Visual Studio IDE에서 콘솔 프로젝트를 만들고 생성된 Program.cs를 아래 코드로 바꿉니다.
Update ServiceURL,accessKey and secretKey with information that matching your MinIO server setup.
MinIO 서버 설정과 일치하는 정보로 ServiceURL, accessKey 및 secretKey를 업데이트하세요.
The example prints all buckets in the MinIO server and lists all objects of the first bucket using aws-sdk-dotnet.
이 예제에서는 MinIO 서버의 모든 버킷을 인쇄하고 aws-sdk-dotnet을 사용하여 첫 번째 버킷의 모든 객체를 나열합니다.
using Amazon.S3;
Amazon.S3 사용;
using System;
시스템 사용;
using System.Threading.Tasks;
System.Threading.Tasks 사용;
using Amazon;
아마존 이용;
class Program
{
[@E private const string accessKey = "PLACE YOUR ACCESS KEY HERE"; @E]
[@K private const string secretKey = "여기에 액세스 키를 입력하세요"; @K]
// do not store secret key hardcoded in your production source code!
// 프로덕션 소스 코드에 하드코딩된 비밀 키를 저장하지 마세요!
static void Main(string[] args)
{
Task.Run(MainAsync).GetAwaiter().GetResult();
}
private static async Task MainAsync()
{
var config = new AmazonS3Config
{
RegionEndpoint = RegionEndpoint.USEast1,
// MUST set this before setting ServiceURL and it should match the `MINIO_REGION` environment variable.
// ServiceURL을 설정하기 전에 이를 설정해야 하며 `MINIO REGION` 환경 변수와 일치해야 합니다.
ServiceURL = "http://localhost:9000", [@E // replace http://localhost:9000 with URL of your MinIO server @E]
[@K // http://localhost:9000을 MinIO 서버의 URL로 바꿉니다. @K]
ForcePathStyle = true
// MUST be true to work correctly with MinIO server
// MinIO 서버에서 올바르게 작동하려면 true여야 합니다
};
var amazonS3Client = new AmazonS3Client(accessKey, secretKey, config);
// uncomment the following line if you like to troubleshoot communication with S3 storage and implement private void OnAmazonS3Exception(object sender,
// S3 스토리지와의 통신 문제를 해결하려는 경우 다음 줄의 주석을 해제하고, 개인 무효를 구현하려는 경우 OnAmazonS3Exception(객체 발신자,
Amazon.Runtime.ExceptionEventArgs e)
// amazonS3Client.ExceptionEvent += OnAmazonS3Exception;
var listBucketResponse = await amazonS3Client.ListBucketsAsync();
foreach (var bucket in listBucketResponse.Buckets)
{
Console.Out.WriteLine("bucket '" + bucket.BucketName + "' created at " + bucket.CreationDate);
}
if (listBucketResponse.Buckets.Count > 0)
{
var bucketName = listBucketResponse.Buckets[0].BucketName;
var listObjectsResponse = await amazonS3Client.ListObjectsAsync(bucketName);
foreach (var obj in listObjectsResponse.S3Objects)
{
Console.Out.WriteLine("key = '" + obj.Key + "' | size = " + obj.Size + " | tags = '" + obj.ETag + "' | modified = " + obj.LastModified);
}
}
}
}
5. Explore Further
5. 더 자세히 살펴보세요
AWS SDK for .NET
.NET용 AWS SDK
Configuring AWS SDK with .NET Core
.NET Core로 AWS SDK 구성
Amazon S3 for DotNet documentation
DotNet용 Amazon S3 설명서