0
アップロードプロセスを処理する非同期プロセスを実行できるAPIを作成しようとしていて、すぐにファイルアップロードプロセスが開始されたことをユーザーに伝えます。ここから、アップロードのステータスを尋ねるポーリングを行うAPIを作成したいと思います。C#Web APIファイルを非同期でアップロードする
これはネットワーキングのスペースで実現可能ですか?そうでなければ、ファイル全体が処理されるまで待たなければならないが、そのAPIは依然として複数のリクエストで利用できるのだろうか?
ここまでは私のコードですが、現在は投稿の特定のバイトに達して失敗します。
public async Task<IHttpActionResult> Post()
{
var stream = HttpContext.Current.Request.GetBufferlessInputStream(true);
// Begin Upload
Task.Run(() => BeginUpload(stream));
// Return upload begin successful
return Ok($"Upload started! # {0}");
}
private async Task<int> BeginUpload(Stream stream)
{
using (var reader = new StreamReader(stream))
{
var index = 0;
var buffer = new char[100000000];
while (!reader.EndOfStream)
{
await reader.ReadBlockAsync(buffer, index, 1024);
index += 1024;
Debug.Write($"{index}\n");
}
}
return 0;
}