Blazor Clientで定義したテキストをAzure Blob Storageにテキストファイルとして保存する
クイック スタート:.NET 用 Azure Blob Storage クライアント ライブラリ | Microsoft Docs
Simple Steps to Upload Files to Azure Blob Storage in Blazor App (syncfusion.com)
以下のプロジェクトが存在することを前提とします。
Client: ブラウザに表示するページ
Server: DB関連やPOST/GET対応用のサーバー側の処理WEB API.
Shared: ClientとServerで使用可能なコード
Step1: Server側のappsettings.jsonを編集
Step2:Access keysを回収
Step3:NugetでAzure.Storage.Blobをインストール
Step4:Share側に送付するクラスを定義
複数情報を送付することを考えて、送付する情報をまとめてクラス化する。
public class LabelPost
{
public string info1 { get; set; }
public string info2 { get; set; }
public string info3 { get; set; }
public LabelPost()
{
}
}
Step5:Client側でPostする内容を作成
LabelPost labelPost = new LabelPost("info1", "info2", "info3");
var responce = await Http.PostAsJsonAsync("api/UploadAzure/Upload", labelPost);
Step6:Server側でコントローラーを作成
このページ作った人。あなたはえらい。
https://www.sukerou.com/2018/10/windows-azure-blob-c.html
[Route("api/[controller]")]
[ApiController]
public class UploadAzureController : ControllerBase
{
private readonly string azureConnectionString;
public UploadAzureController(IConfiguration configuration)
{
azureConnectionString = configuration.GetConnectionString("AzureConnectionString");
}
[HttpPost("[action]")]
public async Task Upload(LabelPost UploadData)
{
try
{
//ストレージアカウントを指定して、BLOB Clientを取得する
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
//BLOBコンテナの取得
CloudBlobContainer container = blobClient.GetContainerReference("yourContinerName");
//BLOBコンテナが存在しない場合、作成する
await container.CreateIfNotExistsAsync();
//ブロックBLOBで、ファイルを作成する
CloudBlockBlob blockBlob = container.GetBlockBlobReference("your_file_name");
//ファイルに、文字列を書き込む
var data = System.Text.Encoding.UTF8.GetBytes("line1"+System.Environment.NewLine+"line2");
using (var mem = new MemoryStream(data))
{
_ = blockBlob.UploadFromStreamAsync(mem);
}
}
catch (Exception e)
{
Response.Clear();
Response.StatusCode = 204;
Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = "File failed to upload";
Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = e.Message;
}
}
MemoryStreamに記入したいテキストの情報を書き込む場合はこのサイトが参考になる。
様々な環境に対応可能なテキストの改行には「System.Environment.NewLine」が便利とのこと。
http://cyberboy6.blog.fc2.com/blog-entry-328.html
Step7:完了
このコードを実行するとファイルがBlobに保存されているはずです。
ここから先は
0字
¥ 100
この記事が気に入ったらチップで応援してみませんか?