public IActionResult Get(String container, String blob) { if (_engine.ContainsBlob(container, blob)) { var bytes = _engine.GetBlob(container, blob); HttpContext.Response.StatusCode = 200; HttpContext.Response.Headers.ContentLength = bytes.Length; HttpContext.Response.Headers.Add("Content-MD5", GetMd5Hash(bytes)); HttpContext.Response.Headers.Add("Accept-Ranges", "bytes"); HttpContext.Response.Headers.Add("Last-Modified", DateTime.UtcNow.ToString("R")); HttpContext.Response.Headers.Add("ETag", "0x8D3C825319A7E5B"); HttpContext.Response.Headers.Add("x-ms-request-id:", Guid.NewGuid().ToString("D")); HttpContext.Response.Headers.Add("x-ms-version:", "2016-05-31"); HttpContext.Response.Headers.Add("x-ms-lease-status", "unlocked"); HttpContext.Response.Headers.Add("x-ms-lease-state", "available"); HttpContext.Response.Headers.Add("x-ms-blob-type", "BlockBlob"); HttpContext.Response.Headers.Add("x-ms-server-encrypted", "false"); HttpContext.Response.Headers.Add("Date", DateTime.UtcNow.ToString("R")); return(File(bytes, "application/octet-stream")); } else { throw new NotImplementedException(); } }