BlazorでAzure Blobにあるテキストを読み込む
Blob上にあるテキストファイルを読み込む
一部コードをこちらから拝借。Getのパラメータが3つあることには意味がない。
https://note.com/y_sakamoto/n/n6f7cef56ed5b
Server側コード
[Route("api/[controller]")]
[ApiController]
public class TestController : Controller
{
private readonly string azureConnectionString;
public ImageLabelController(DataContext context, IConfiguration configuration)
{
azureConnectionString = configuration.GetConnectionString("AzureConnectionString");
}
[HttpGet("{id}/{id2}/{id3}")]
public async Task<ActionResult<List<string>>> Get(string id, string id2, string id3)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString);
CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference("ContainerName");
CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference("Filename.txt");
bool _is_exist = cloudBlockBlob.ExistsAsync().Result;
List<string> str_list = new List<string>();
if (_is_exist)
{
var reading = cloudBlockBlob.OpenReadAsync().Result;
using (var ms = new StreamReader(reading))
{
string line;
while ((line = ms.ReadLine())!=null)
{
str_list.Add(line);
}
}
return Ok(str_list);
}
else
{
return BadRequest(str_list);
}
}
Client側
var stringlist = await Http.GetFromJsonAsync<string[]>("api/Test/r/r/r");
どういう形式で返すかは自由であるが、ここではString型に直してClient側に返す方式を記載した。
ここから先は
0字
¥ 100
この記事が気に入ったらチップで応援してみませんか?