フッターコンテンツにスキップ
Iron Academy Logo
C#データベース統合

C#によるAzureストレージ入門

Tim Corey
1h 05m 37s

Azure Storageは、Microsoft Azureが提供する必要不可欠なサービスであり、.NETテクノロジーと組み合わせることで、クラウド上でファイルを保存・取得するための強力なツールとなります。 詳細なチュートリアル"Intro to Azure Storage in C#"では、Tim CoreyがAzure Storageアカウントの構成、Azure Blob Storageの設定、C# ASP.NET Core MVCプロジェクトへの統合の正確な手順を視聴者に説明します。

この記事では、Timのビデオに忠実に、実際のAzure開発で使用される主要な概念や用語について、プロセスの各段階を探ります。

Azureストレージの価格とプランニング

Timはまず、C#アプリケーションでAzure Storageを使用することの経済的効率について説明する。 テキストファイル、画像、バイナリデータの保存にブロブコンテナを使用する場合でも、コストは最小限に抑えられます。 また、パフォーマンス階層、冗長性設定、データ操作などの選択した機能に基づいて料金を見積もる Azure Pricing Calculator を紹介しています。

Tim は、Azure ポータルの汎用 v2 で Block Blob Storage を選択し、頻繁にアクセスされるファイル用にホットアクセス階層を設定します。 また、安全性を維持しながらコストを最小限に抑えるため、ストレージアカウントがローカル冗長ストレージ(LRS)を使用していることを確認する。

1GBのデータを保存し、数千の操作を行うデモアプリの場合、コストは月額13セントになります"とティムは説明する。

Azureストレージアカウントの作成

Azureポータルで、Timは新しいリソースグループと対応するAzureストレージアカウントを作成する方法を示します。 命名規則は厳格で、ストレージアカウント名は一意で、小文字で、ダッシュを含まない必要があります。

プロトタイプやローカル環境で作業する開発者にとっては重要なヒントです。 また、コンテナ・レベルでの匿名アクセスも可能にしているが、これはデモンストレーションのためであり、実際の本番環境ではセキュリティで保護されたアクセスが必要であることを警告している。

Intro Azure Storage Csharp 1 related to Azureストレージアカウントの作成

また、アクセスキー、接続文字列、ストレージアカウント名など、C#プロジェクトがAzureリソースに接続する際に必要不可欠な要素についても解説しています。

Azureブロブ ストレージを理解する

Timは、ブロブコンテナがAzureストレージアカウント内のデータを整理するためにどのように使用されるかを強調します。 彼は、ポータルを介して手動で新しいコンテナを作成することを避け、代わりにAzure SDK for .NETを使用してコードで生成することを計画しています。

彼は、セキュアアクセスキーと接続文字列(アカウントのセキュリティ設定で表示可能)が、ストレージクライアントライブラリで認証するためにアプリケーションで使用されると説明している。

ASP.NETコアプロジェクトを開始する

Timは、Visual Studioを使用して.NET 9 MVC Webアプリケーションを作成します。 Blazor PagesやBlazor Serverなど、どのようなUIタイプでも使用できますが、彼はデモンストレーションのためにMVCを選択しました。

19:35のsecrets.jsonでは、機密性の高い認証情報を安全に保存している:

  • 接続文字列

  • ストレージアカウントキー

  • コンテナ名

  • ストレージアカウント名

Intro Azure Storage Csharp 2 related to ASP.NETコアプロジェクトを開始する

Timは、appsettings.jsonはソースコードリポジトリにコミットされるため、秘密を含んではいけないと説明しています。 特に開発中は、秘密はユーザーシークレットを使用してローカルに保存する必要があります。

必要な NuGet パッケージをインストールする

Azure Blob Storageと対話するために、TimはAzure.Storage.Blobs NuGetパッケージをインストールします。 彼は、Microsoft が Azure SDK を使用して機能をモジュール化し、より小規模で保守性の高いアプリケーションを実現したことを高く評価しています。

Intro Azure Storage Csharp 3 related to 必要な NuGet パッケージをインストールする

フレームワークにすべてをバンドルする代わりに、Azure Blobクライアント・ライブラリのように必要なものをNuGet経由で入手できるようになりました"とティムは指摘する。

Azureストレージの設定オプションパターン

次に、Tim は POCO クラス(BlobStorageOptions)を作成して、コンフィグ内のキーと一致させます。彼はoptionsパターンを使って、強く型付けされたオブジェクトにコンフィギュレーションをバインドし、一元化されたテスト可能なコンフィギュレーションを可能にしている。

この設定により、.NETアプリが環境間で一貫してAzure設定を使用することが容易になります。

ブロブ ストレージ サービス ロジックの実装

TimはDataAccessという新しいフォルダを追加し、BlobStorage.csというクラスを実装します。 内部では、IOptionsを使ってコンフィギュレーションを注入し、それをプライベート・インスタンスに格納する。

彼は2つの主要な非同期メソッドを構築します:

ファイルのアップロードロジック

UploadFileAsyncメソッド:

  • MVCフロントエンドからIFormFileを受け取ります。

  • 接続文字列とコンテナ名を使用して、Azure Storage SDK から BlobContainerClient を作成します。

  • 既存のコンテナをチェックするか、コンテナが存在しない場合は新しいコンテナを作成します。

  • アクセスポリシーを"なし"に設定し、コンテナが一般にアクセスできないようにします。

  • BlobClient オブジェクトを使用して、ストリームからファイルをアップロードします。

Tim は、using ステートメントと await 呼び出しを使用して、ファイル・ストリームを安全に処理し、メモリ・リークを防ぎます。

ファイルロジックのダウンロード

DownloadFileAsyncでは、Tim:

  • 文字列のファイル名または完全なblob URIを受け入れます。

  • URI と安全な認証情報を使用して新しい BlobClient を構築します。

  • DownloadStreamingAsync を使用してファイルをダウンロードします。

  • ブラウザからダウンロードできるように、ストリームを FileContentResult でラップします。

これにより、ファイルの安全性が保たれ、URLの推測を通じて直接ではなく、アプリケーションを通じてのみファイルにアクセスできるようになります。

依存性注入による Blob ストレージの登録

Timは自分のクラスにインターフェース(IBlobStorage)を定義し、.NET DIコンテナにシングルトンとして登録します。 このクラスはステートレスで設定値のみを使用するため、Singletonが最適です。

MVCアプリとの統合

ホームコントローラはIBlobStorageを使用するように修正されています。 内容は以下のとおりです:

  • 入力を検証し、UploadFileAsyncを呼び出すUploadFile POSTメソッド。

  • URL をチェックし、DownloadFileAsync を呼び出す GetFile POST メソッド。

各メソッドは、アップロードまたはダウンロードにかかわらず、ブロブファイルを安全に処理するためにストレージクライアントと相互作用します。

ファイル操作のためのRazor ビュー UI

Index.cshtmlで、ティムは設定します:

  • input type="file "とBootstrapスタイリングを使用した、ファイルをアップロードするためのフォーム。

  • URIを使用してファイルをダウンロードするための2番目のフォーム。

  • ファイル不足や無効なURIなどのエッジケースのエラーメッセージ処理。

  • アップロード成功後に生成されたblob URI (https)を表示するセクション。

また、Tim は Listを使用してエラーを処理し、UI 上で明確に表示することで、ファイルの選択漏れなどの問題をユーザーに知らせます。

ファイル セキュリティのテストと検証

Timはテキストファイルをアップロードし、ブラウザでURIに直接アクセスしようとしました。

Azureポータルのアクセスレベルを一時的に変更した後、ファイルはダイレクトリンク経由でダウンロードできるようになります。 しかし、彼はすぐにそれをプライベートに戻し、Azureがいかにセキュリティをきめ細かく制御できるかを強調する。

ティムの最終的な推奨事項

ティムは最後に、Microsoft Azureは最小限の投資でも多くの価値を提供することを、開発者に思い起こさせています。 以下のようなツールがあります:

  • NuGetパッケージ

  • Azure SDK

  • Visual Studio

  • Azure ポータル

  • セキュアな接続文字列とキー

C#を使用して、すぐに生産可能なストレージソリューションを構築できます。 大規模システムでも小規模なテストプロジェクトでも、Azure Blob Storageはスケーラブルで費用対効果の高い選択肢です。

クラウドでは使用した分だけ料金を支払うので、必要なものだけを要求してください"とティムは強調する。

まとめ

ストレージアカウントの作成からブロブコンテナの設定、MVCアプリケーションでのアップロードとダウンロードの安全な処理まで、Tim Coreyは.NETでAzure Storageを使用するライフサイクル全体をカバーする詳細な手順を提供します。

このガイドとTimのビデオがあれば、Azure Blob Storageを自信を持って使い始めることができます。

さらにわかりやすくするために、彼の完全なビデオと、Azure ストレージ(C#)に関する洞察に満ちたコンテンツについては、YouTubeチャンネルをチェックしてください。

Hero Worlddot related to C#によるAzureストレージ入門
Hero Affiliate related to C#によるAzureストレージ入門

好きなことを共有することで収入を増やす

.NET、C#、Java、Python、またはNode.jsを使用する開発者向けのコンテンツを作成しますか?あなたの専門知識を副収入に変えましょう!

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね