You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

serve.go 1.0 kB

2 years ago
1234567891011121314151617181920212223242526272829303132333435363738
  1. package cmdline
  2. import (
  3. "fmt"
  4. "gitlink.org.cn/cloudream/storage/client/internal/http"
  5. )
  6. // ServeHTTP 启动HTTP服务。
  7. // ctx: 命令行上下文,包含服务配置等信息。
  8. // args: 命令行参数,第一个参数可选地指定HTTP服务器监听地址。
  9. // 返回值: 如果启动过程中遇到错误,返回错误信息;否则返回nil。
  10. func ServeHTTP(ctx CommandContext, args []string) error {
  11. // 默认监听地址为":7890",如果提供了命令行参数,则使用参数指定的地址。
  12. listenAddr := ":7890"
  13. if len(args) > 0 {
  14. listenAddr = args[0]
  15. }
  16. // 创建一个新的HTTP服务器实例。
  17. httpSvr, err := http.NewServer(listenAddr, ctx.Cmdline.Svc)
  18. if err != nil {
  19. return fmt.Errorf("new http server: %w", err)
  20. }
  21. // 启动HTTP服务。
  22. err = httpSvr.Serve()
  23. if err != nil {
  24. return fmt.Errorf("serving http: %w", err)
  25. }
  26. return nil
  27. }
  28. // 初始化函数,将ServeHTTP命令注册到命令列表中。
  29. func init() {
  30. commands.MustAdd(ServeHTTP, "serve", "http")
  31. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。