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
ソースコード説明
- リージョンエンドポイントの指定
private static readonly Amazon.RegionEndpoint bucketRegionEndPoint = Amazon.RegionEndpoint.APNortheast1;
このコードで、リージョンを「APNothEast1」に指定します。
- アップロード関数の定義
public static int UploadFile(string bucketName, string filePath)
この関数は、 bucketName と filePath を引数に持ち、int型でリターンコードを返却します。
- 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対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。
リンク
コメント