55 "io"
66 "strings"
77
8- "api-key-rotator/backend/internal/infrastructure/cache"
98 "api-key-rotator/backend/internal/config"
9+ "api-key-rotator/backend/internal/infrastructure/cache"
1010 "api-key-rotator/backend/internal/logger"
1111 "api-key-rotator/backend/internal/models"
1212 "api-key-rotator/backend/internal/services"
@@ -33,7 +33,7 @@ func NewGeminiAdapter(cfg *config.Config, db *gorm.DB, cacheClient cache.CacheIn
3333func (a * GeminiAdapter ) ProcessRequest () (* services.TargetRequest , error ) {
3434 // 1. 代理访问认证 (劫持 'x-goog-api-key' Header)
3535 proxyKey := a .c .GetHeader ("x-goog-api-key" )
36-
36+
3737 validKeys := a .cfg .GetGlobalProxyKeys ()
3838 isValidKey := false
3939 for _ , key := range validKeys {
@@ -45,15 +45,15 @@ func (a *GeminiAdapter) ProcessRequest() (*services.TargetRequest, error) {
4545 if ! isValidKey {
4646 return nil , fmt .Errorf ("invalid Proxy Key. Provide it via the 'key' URL query parameter" )
4747 }
48-
48+
4949 // 2. 轮询上游密钥
5050 upstreamKey , err := a .RotateUpstreamKey ()
5151 if err != nil {
5252 return nil , err
5353 }
5454
5555 // 3. 构建目标请求 (偷梁换柱)
56- headers := utils .FilterRequestHeaders (a .c .Request .Header , []string {"x-goog-api-key" })
56+ headers := utils .FilterRequestHeaders (a .c .Request .Header , []string {"x-goog-api-key" , "accept-encoding" })
5757
5858 // 优先使用数据库中为该proxyConfig保存的APIKeyName, 否则回退到默认值
5959 keyName := "x-goog-api-key"
@@ -110,4 +110,4 @@ func (a *GeminiAdapter) ProcessRequest() (*services.TargetRequest, error) {
110110 Params : params ,
111111 Body : body ,
112112 }, nil
113- }
113+ }
0 commit comments