mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 15:53:42 +08:00 
			
		
		
		
	Merge branch 'upstream/main'
This commit is contained in:
		
							
								
								
									
										27
									
								
								middleware/gzip.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								middleware/gzip.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
package middleware
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"compress/gzip"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"io"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func GzipDecodeMiddleware() gin.HandlerFunc {
 | 
			
		||||
	return func(c *gin.Context) {
 | 
			
		||||
		if c.GetHeader("Content-Encoding") == "gzip" {
 | 
			
		||||
			gzipReader, err := gzip.NewReader(c.Request.Body)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				c.AbortWithStatus(http.StatusBadRequest)
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			defer gzipReader.Close()
 | 
			
		||||
 | 
			
		||||
			// Replace the request body with the decompressed data
 | 
			
		||||
			c.Request.Body = io.NopCloser(gzipReader)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Continue processing the request
 | 
			
		||||
		c.Next()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -9,6 +9,7 @@ import (
 | 
			
		||||
 | 
			
		||||
func SetRelayRouter(router *gin.Engine) {
 | 
			
		||||
	router.Use(middleware.CORS())
 | 
			
		||||
	router.Use(middleware.GzipDecodeMiddleware())
 | 
			
		||||
	// https://platform.openai.com/docs/api-reference/introduction
 | 
			
		||||
	modelsRouter := router.Group("/v1/models")
 | 
			
		||||
	modelsRouter.Use(middleware.TokenAuth())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user