使用C#.Net Core 2.0的无服务器模板,我创建了一个包含图像的S3存储桶 - 我想在浏览器中显示它。
在本地运行webapi我可以正常查看图像,甚至不包括内容长度标题。通过https://apidemo.boro2g.co.uk/media/mirrored-faces.jpg访问时,内容长度会变得比应该更大。原始图像大约为300kb,但在API网关中大约为400kb。
我想使用代理在图片上应用一些自定义安全性,因此不希望它们公开,为了测试您可以在https://s3-eu-west-1.amazonaws.com/boro2g-photogallery/mirrored-faces.jpg
看到原始版本我已尝试在API中添加二进制媒体类型,但这些似乎没有任何效果。
“获取”图像的代码非常简单:
[HttpGet("{key}")]
public async Task Get(string key)
{
try
{
var getResponse = await S3Client.GetObjectAsync(new GetObjectRequest
{
BucketName = BucketName,
Key = key
});
Response.ContentType = getResponse.Headers.ContentType;
getResponse.ResponseStream.CopyTo(Response.Body);
}
catch (AmazonS3Exception e)
{
Response.StatusCode = (int)e.StatusCode;
var writer = new StreamWriter(Response.Body);
writer.Write(e.Message);
}
}
为什么API会错误地更新内容长度?
FYI静态txt文件加载没有问题:https://apidemo.boro2g.co.uk/media/test.txt
答案 0 :(得分:1)
最终我找到的解决方案是:
此处的第二步可能没有必要,但我发现 / 在我做出更改之前没有启动。
答案 1 :(得分:0)