LoginSignup
0
1

More than 3 years have passed since last update.

.NET CoreのWebページからBlob Storage上にファイルを作成する

Posted at

C#を使って、AzureのBlob Storage上にファイルを作ります。

1. Blob Storageの作成

Azureにサインインして、Blob Storageを作成します。
あまりお金は使いたくないので、なるべく安いプランを使用します。

(1) Azureにサインインして、「ストレージアカウント」を選択
(2) 以下のような感じに設定します。レプリケーションを「LRS」に変更。
image.png
※ ホットよりクールのほうが安いけど、微々たる差に見えたのでホットのままにしました。

(3) その他はデフォルトのままで作成。

これでBlob Storageは完成です。

2. コンテナーの作成

作成したBlob Storage上にコンテナーを作成します。

(1) 作成したBlob Storageを選択
(2) メニューから「コンテナー」を選択
image.png

(3) 画面上部のメニューにある「+ コンテナー」を選択
(4) テキトーに名前を決めます。アクセスレベルはデフォルトにしておきます。
(5) 「作成」を選択

これでコンテナーが完成します。

3. 接続文字列の取得

Webからコンテナーにファイルを作成するために、接続文字列を取得しておきます。

(1) 作成したBlob Storageを選択
(2) メニューの「設定」にある「アクセスキー」を選択
(3) key1とkey2の二つがあるので、片方の「接続文字列」を控えておきます。

4. C#のコード

Blob Storageにファイルを作成するためのコードを打ちます。

    public class AzureBlobService
    {
        private readonly CloudStorageAccount _account;
        private readonly AppSettings _appSettings;

        public AzureBlobService(AppSettings appSettings)
        {
            _appSettings = appSettings;

            // 設定ファイルから接続文字列を取得 
            var connectionString = appSettings.AzureStorageConfig.AZURE_STORAGE_CONNECTION_STRING;

            // ストレージアカウントのオブジェクトを作成
            _account = CloudStorageAccount.Parse(connectionString);
        }

        public async Task CreateBlobAsync(string blobName)
        {
            // Blobクライアントを作成
            var client = _account.CreateCloudBlobClient();

            // Blobコンテナの参照を取得
            var container = client.GetContainerReference(_appSettings.AzureStorageConfig.ContainerName);

            // Blobコンテナが存在していなかったら作成
            await container.CreateIfNotExistsAsync();

            // Blobの追加
            {
                // 引数に指定されたファイル名で作成する
                var blob = container.GetBlockBlobReference(blobName + ".txt");

                // 引数に指定した内容がファイルに書き込まれる
                await blob.UploadTextAsync("file content");
            }
        }
    }

このメソッドを実行したところ、ちゃんとコンテナーにファイルが作成されたことが確認できました。

次は、このファイルの内容をAzureのリソーステンプレートの内容にするのが目標ですね・・・
(Webからいろいろ入力して、リソーステンプレートを作りたい)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1