gpt4 book ai didi

java - 删除 "Expires"HTTP header (用于 StreamedFiles)

转载 作者:行者123 更新时间:2023-12-04 08:54:05 25 4
gpt4 key购买 nike

在 micronaut 过滤器中,我指定了自己的标题,例如。 G。我使用“max-age”指令设置“Cache-Control” header 。因此我想删除“Expires” header ,因为通过使用“Cache-Control”,“Expires” header 被忽略 1 .
当从过滤器返回 StreamedFile 时,“Expires”和“Date” header 由 FileTypeHandler 2 设置。我不知道如何改变这一点。
有没有改变这个的选项?
例子:

@Filter("/**")
public class MyFilter implements HttpServerFilter {

@Inject
ImageService imageService;

@Override
public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
File image = imageService.getImage(request);

return Publishers.just(
HttpResponse.ok(new StreamedFile(new FileInputStream(image), MediaType.IMAGE_JPEG_TYPE))
.header("Cache-Control", "max-age=31449600")
.header("Access-Control-Allow-Methods", "GET")
.header("Referrer-Policy", "same-origin")
);
}

}

最佳答案

不确定为什么要从过滤器返回文件
如果只是您确定的方法打扰您生成此 header ,则可以覆盖它:

@Singleton
@Replaces(FileTypeHandler.class)
public class CustomFileTypeHandler extends FileTypeHandler {

public CustomFileTypeHandler(FileTypeHandlerConfiguration configuration) {
super(configuration);
}

@Override
protected void setDateAndCacheHeaders(MutableHttpResponse response, long lastModified) {
//do nothing
}
}

关于java - 删除 "Expires"HTTP header (用于 StreamedFiles),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63933048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com