C# で簡単に AWS S3 にファイルをアップロードするソースコード

C# でAmazon AWS S3 に ファイルをアップロードする方法はいろいろありますが、シンプルに簡単にファイルをアップロードするソースコードを紹介します。

using Amazon.S3;
using Amazon.S3.Model;
using Amazon.S3.Transfer;
using System;

namespace autocbk
{
    class FAmazonS3
    {
        private static readonly Amazon.RegionEndpoint bucketRegionEndPoint = Amazon.RegionEndpoint.APNortheast1;
        private static IAmazonS3 s3Client;

        public static int UploadFile(string bucketName, string filePath)
        {
            try
            {
                s3Client = new AmazonS3Client(bucketRegionEndPoint);

                TransferUtility fileTransferUtility = new TransferUtility(s3Client);
                fileTransferUtility.Upload(filePath, bucketName);

                return 0;
            }
            catch(Exception e)
            {
                return 9;
            }
        }

    }
}

必要なNuGetパッケージ

AWSSDK.S3 が必要です。これをインストールすると、AWSSDK.Core が自動的についてきます。

aws s3 nuget package

ソースコード説明

  1. リージョンエンドポイントの指定
private static readonly Amazon.RegionEndpoint bucketRegionEndPoint = Amazon.RegionEndpoint.APNortheast1;

このコードで、リージョンを「APNothEast1」に指定します。

  1. アップロード関数の定義
public static int UploadFile(string bucketName, string filePath)

この関数は、 bucketName と filePath を引数に持ち、int型でリターンコードを返却します。

  1. S3にファイルをアップロード

fileTransferUtility.Upload(filePath, bucketName);

TransferUtility オブジェクトのUpload 関数でアップロードを行います。TransferUtility クラスの公式ドキュメントは以下にあります。

TransferUtility Class | AWS SDK for .NET V2
TransferUtility Class

おすすめ本 c#コードレシピ集

c#コードレシピ集は、「文字列を大文字あるいは小文字に変換したい」や「Taskをキャンセルしたい」など逆引き的にコードの書き方を調べられるレシピ集です。

2021年8月に発売された本で、全部で385個のレシピが収録されています。

ジャンルは日付処理やLINQ、並列処理と非同期処理など幅広く記載されています。

Kindle対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。

コメント

タイトルとURLをコピーしました