C# で S3 を操作する

この記事を書いたチーム:frontier

 

はじめに

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

現在、参画しているプロジェクトの開発言語がC#であり、AWS S3にあるファイルを操作する処理を実装する必要がありました。そこで、調査した結果を記載します。

 

S3 の基本概念

バケットとオブジェクト

  • バケット:S3上の「フォルダ」のようなもの。保存するファイル(オブジェクト)は必ずバケット内に配置される。
  • オブジェクト:保存する実体(ファイル)。オブジェクトにはデータ本体とメタデータ(属性情報)が含まれる。

特徴

  • 無制限に近い容量を持つスケーラブルなストレージ
  • 高耐久性(99.999999999% = 11ナイン)
  • 高可用性(リージョン内で自動的に複数コピー)

 

C# S3 を操作するサンプルコード

前提 

  • .NET 6 以上推奨
  • NuGet パッケージに AWSSDK.S3 を追加
    dotnet add package AWSSDK.S3 

1.ファイルをアップロードする

2.ファイルをダウンロードする

3.ファイルを削除する

 

まとめ

AWS S3は単なるファイル置き場ではなく、「アプリのストレージ基盤」「データレイク」「静的Webホスティング」 として幅広く活用できるサービスです。
開発者にとっては、S3を正しく理解して活用することで アプリの拡張性・コスト効率・安全性 を大きく高められます。

また、実装におけるポイントは下記の通り。
TransferUtility を使うと大きなファイルでも分割アップロード可能
・リージョン指定 は必須 (RegionEndpoint.APNortheast1 は東京)
・認証情報は ~/.aws/credentials または 環境変数 から取得される
Secrets ManagerIAMロールを使うのがベストプラクティス)

これからAWSを使う方も、既に使っている方も、自分のシステムにおけるS3の使いどころをぜひ見直してみてください。

 

    【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

    Smallitのサービス