mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 21:32:25 -05:00 
			
		
		
		
	[feature] Gin enable gzip encoding (#405)
* add gin gzip dependency * add gzip middleware to router * go mod tidy
This commit is contained in:
		
					parent
					
						
							
								23034ec145
							
						
					
				
			
			
				commit
				
					
						a089a98ea9
					
				
			
		
					 11 changed files with 442 additions and 5 deletions
				
			
		
							
								
								
									
										135
									
								
								vendor/github.com/gin-contrib/gzip/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								vendor/github.com/gin-contrib/gzip/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,135 @@ | |||
| # GZIP gin's middleware | ||||
| 
 | ||||
| [](https://github.com/gin-contrib/gzip/actions/workflows/go.yml) | ||||
| [](https://codecov.io/gh/gin-contrib/gzip) | ||||
| [](https://goreportcard.com/report/github.com/gin-contrib/gzip) | ||||
| [](https://godoc.org/github.com/gin-contrib/gzip) | ||||
| [](https://gitter.im/gin-gonic/gin) | ||||
| 
 | ||||
| Gin middleware to enable `GZIP` support. | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| Download and install it: | ||||
| 
 | ||||
| ```sh | ||||
| go get github.com/gin-contrib/gzip | ||||
| ``` | ||||
| 
 | ||||
| Import it in your code: | ||||
| 
 | ||||
| ```go | ||||
| import "github.com/gin-contrib/gzip" | ||||
| ``` | ||||
| 
 | ||||
| Canonical example: | ||||
| 
 | ||||
| ```go | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
|   "fmt" | ||||
|   "net/http" | ||||
|   "time" | ||||
| 
 | ||||
|   "github.com/gin-contrib/gzip" | ||||
|   "github.com/gin-gonic/gin" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
|   r := gin.Default() | ||||
|   r.Use(gzip.Gzip(gzip.DefaultCompression)) | ||||
|   r.GET("/ping", func(c *gin.Context) { | ||||
|     c.String(http.StatusOK, "pong "+fmt.Sprint(time.Now().Unix())) | ||||
|   }) | ||||
| 
 | ||||
|   // Listen and Server in 0.0.0.0:8080 | ||||
|   if err := r.Run(":8080"); err != nil { | ||||
|     log.Fatal(err) | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| Customized Excluded Extensions | ||||
| 
 | ||||
| ```go | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
|   "fmt" | ||||
|   "net/http" | ||||
|   "time" | ||||
| 
 | ||||
|   "github.com/gin-contrib/gzip" | ||||
|   "github.com/gin-gonic/gin" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
|   r := gin.Default() | ||||
|   r.Use(gzip.Gzip(gzip.DefaultCompression, gzip.WithExcludedExtensions([]string{".pdf", ".mp4"}))) | ||||
|   r.GET("/ping", func(c *gin.Context) { | ||||
|     c.String(http.StatusOK, "pong "+fmt.Sprint(time.Now().Unix())) | ||||
|   }) | ||||
| 
 | ||||
|   // Listen and Server in 0.0.0.0:8080 | ||||
|   if err := r.Run(":8080"); err != nil { | ||||
|     log.Fatal(err) | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| Customized Excluded Paths | ||||
| 
 | ||||
| ```go | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
|   "fmt" | ||||
|   "net/http" | ||||
|   "time" | ||||
| 
 | ||||
|   "github.com/gin-contrib/gzip" | ||||
|   "github.com/gin-gonic/gin" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
|   r := gin.Default() | ||||
|   r.Use(gzip.Gzip(gzip.DefaultCompression, gzip.WithExcludedPaths([]string{"/api/"}))) | ||||
|   r.GET("/ping", func(c *gin.Context) { | ||||
|     c.String(http.StatusOK, "pong "+fmt.Sprint(time.Now().Unix())) | ||||
|   }) | ||||
| 
 | ||||
|   // Listen and Server in 0.0.0.0:8080 | ||||
|   if err := r.Run(":8080"); err != nil { | ||||
|     log.Fatal(err) | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| Customized Excluded Paths | ||||
| 
 | ||||
| ```go | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
|   "fmt" | ||||
|   "net/http" | ||||
|   "time" | ||||
| 
 | ||||
|   "github.com/gin-contrib/gzip" | ||||
|   "github.com/gin-gonic/gin" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
|   r := gin.Default() | ||||
|   r.Use(gzip.Gzip(gzip.DefaultCompression, gzip.WithExcludedPathsRegexs([]string{".*"}))) | ||||
|   r.GET("/ping", func(c *gin.Context) { | ||||
|     c.String(http.StatusOK, "pong "+fmt.Sprint(time.Now().Unix())) | ||||
|   }) | ||||
| 
 | ||||
|   // Listen and Server in 0.0.0.0:8080 | ||||
|   if err := r.Run(":8080"); err != nil { | ||||
|     log.Fatal(err) | ||||
|   } | ||||
| } | ||||
| ``` | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue