Spaces:
Paused
Paused
| package server | |
| import ( | |
| "context" | |
| "path" | |
| "strings" | |
| "github.com/alist-org/alist/v3/internal/conf" | |
| "github.com/alist-org/alist/v3/server/common" | |
| "github.com/alist-org/alist/v3/server/s3" | |
| "github.com/gin-gonic/gin" | |
| ) | |
| func S3(g *gin.RouterGroup) { | |
| if !conf.Conf.S3.Enable { | |
| g.Any("/*path", func(c *gin.Context) { | |
| common.ErrorStrResp(c, "S3 server is not enabled", 403) | |
| }) | |
| return | |
| } | |
| if conf.Conf.S3.Port != -1 { | |
| g.Any("/*path", func(c *gin.Context) { | |
| common.ErrorStrResp(c, "S3 server bound to single port", 403) | |
| }) | |
| return | |
| } | |
| h, _ := s3.NewServer(context.Background()) | |
| g.Any("/*path", func(c *gin.Context) { | |
| adjustedPath := strings.TrimPrefix(c.Request.URL.Path, path.Join(conf.URL.Path, "/s3")) | |
| c.Request.URL.Path = adjustedPath | |
| gin.WrapH(h)(c) | |
| }) | |
| } | |
| func S3Server(g *gin.RouterGroup) { | |
| h, _ := s3.NewServer(context.Background()) | |
| g.Any("/*path", gin.WrapH(h)) | |
| } | |