package cmdline import ( "fmt" "gitlink.org.cn/cloudream/storage/client/internal/config" "gitlink.org.cn/cloudream/storage/client/internal/http" ) // ServeHTTP 启动HTTP服务。 // ctx: 命令行上下文,包含服务配置等信息。 // args: 命令行参数,第一个参数可选地指定HTTP服务器监听地址。 // 返回值: 如果启动过程中遇到错误,返回错误信息;否则返回nil。 func ServeHTTP(ctx CommandContext, args []string) error { // 默认监听地址为":7890",如果提供了命令行参数,则使用参数指定的地址。 listenAddr := ":7890" if len(args) > 0 { listenAddr = args[0] } awsAuth, err := http.NewAWSAuth(config.Cfg().AuthAccessKey, config.Cfg().AuthSecretKey) if err != nil { return fmt.Errorf("new aws auth: %w", err) } // 创建一个新的HTTP服务器实例。 httpSvr, err := http.NewServer(listenAddr, ctx.Cmdline.Svc, awsAuth) if err != nil { return fmt.Errorf("new http server: %w", err) } // 启动HTTP服务。 err = httpSvr.Serve() if err != nil { return fmt.Errorf("serving http: %w", err) } return nil } // 初始化函数,将ServeHTTP命令注册到命令列表中。 func init() { commands.MustAdd(ServeHTTP, "serve", "http") }