次のようにファイルの結果を返すMVCコントローラーがあります
<pre>
public ActionResult GetPdf(string id)
{
string fileName = Server.MapPath("Somepdf.pdf");
FileInfo info = new FileInfo(fileName);
return File(info.OpenRead(), "application/pdf");
}
</pre>
これは iOS アプリによって読み取られ、正常に動作します。
しかし、Amazon S3 からファイルをストリーミングするようにこれを変更したいと考えています。S3 からストリームを簡単に取得できますが、メソッドで何を返しても、iOS アプリは気に入りません。
<pre>
Stream pdfFrom = S3Interface.getstream("Pdfs/somepdf.pdf");
return File(pdfFrom, "application/pdf", "somepdfname.pdf");
</pre>
私は多くの方法を試しましたが、結果が有効になるようには見えません。
結果をバイト[]に変更することでこの投稿に近づきましたが、すべてのバイトが返されないように見えるため、まだ喜びはありません。 File.OpenRead() からストリームを返す
System.IO.MemoryStream data = new System.IO.MemoryStream();
System.IO.Stream str = S3Interface.getstream("Pdfs/somepdf.pdf");
str.CopyTo(data);
data.Seek(0, SeekOrigin.Begin);
byte[] buf = new byte[data.Length];
data.Read(buf, 0, buf.Length);
return data.ToArray();
私が基本的に必要としているのは、File.OpenRead に相当するものですが、ストリーム用です。
アドバイスをいただければ幸いです