* fix:未导入unicode包 * feat:图片异步转换 * feat:添加R2支持 * feat:新增文件管理 * fix:修复错误信息双写导致响应异常 * chore:渠道列表中添加快捷启用停止按钮 * fix:修复模型异常终端导致报错的问题 * improve:优化无可用渠道的日志打印,减少日志污染 * fix:在线体验出错缺少提示信息 * fix:修复日志库问题,只有请求日志保存到独立的库中 * feat:新增阿里图片模型说明文档 * fix:阿里千问图片生成 * fix:修复图片异步控制无效问题 * improve:优化文件展示,支持缩略图查看 * feat:实时监控中添加图片异步转换池状态信息 * improve:优化在线体验页面布局 * fix:修复异步任务状态显示异常问题 * feat:图片异步任务停止时等待任务完成后再退出程序 * chore:调整存储路径 --------- Co-authored-by: qian <wuchengqian5@163.com> Co-authored-by: chengqian <wuchengqian@kkidc.com>
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package task
|
|
|
|
import (
|
|
"bytes"
|
|
"net/http"
|
|
)
|
|
|
|
// memResponseWriter 是一个纯内存的 http.ResponseWriter 实现。
|
|
//
|
|
// sync_image worker 复刻 relay 管线时没有真实的客户端 HTTP 连接,
|
|
// adaptor.DoResponse 会把上游响应写入传入的 writer。使用本类型捕获响应体和状态码,
|
|
// 供 worker 后续解析(b64_json / url),而不会像 ResponseCaptureWriter 那样
|
|
// 因内嵌 nil 的真实 writer 而 panic。
|
|
type memResponseWriter struct {
|
|
header http.Header
|
|
buf bytes.Buffer
|
|
status int
|
|
}
|
|
|
|
// newMemResponseWriter 创建内存 writer,默认状态码 200(与 net/http 语义一致)。
|
|
func newMemResponseWriter() *memResponseWriter {
|
|
return &memResponseWriter{
|
|
header: make(http.Header),
|
|
status: http.StatusOK,
|
|
}
|
|
}
|
|
|
|
func (w *memResponseWriter) Header() http.Header {
|
|
return w.header
|
|
}
|
|
|
|
func (w *memResponseWriter) WriteHeader(code int) {
|
|
w.status = code
|
|
}
|
|
|
|
func (w *memResponseWriter) Write(b []byte) (int, error) {
|
|
return w.buf.Write(b)
|
|
}
|
|
|
|
// Bytes 返回已捕获的响应体。
|
|
func (w *memResponseWriter) Bytes() []byte {
|
|
return w.buf.Bytes()
|
|
}
|
|
|
|
// StatusCode 返回捕获的状态码。
|
|
func (w *memResponseWriter) StatusCode() int {
|
|
return w.status
|
|
}
|