server

package
v0.0.0-...-07920c1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 27, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Port int    // 服务器监听的端口,例如: 8080
	Dir  string // 提供服务的目录路径,例如: "/home/user/files"

	// 认证相关配置
	AuthType        auth.AuthType // 认证类型,可选值: auth.NoAuth, auth.BasicAuth, auth.TokenAuth, auth.FormAuth
	Username        string        // 用户名,用于BasicAuth和FormAuth,例如: "admin"
	Password        string        // 密码,用于BasicAuth和FormAuth,例如: "password123"
	Token           string        // 令牌,用于TokenAuth,例如: "abcdef123456"
	EnableLoginPage bool          // 是否启用登录页面,用于FormAuth,例如: true表示启用

	// 目录浏览相关配置
	EnableDirListing bool   // 是否启用目录列表功能,例如: true表示启用
	Theme            string // 目录列表主题,可选值: "default", "bootstrap", "material" 等
}

Config 保存文件服务器的配置 该结构体包含了服务器启动和运行所需的所有配置参数

type FileServer

type FileServer struct {
	// contains filtered or unexported fields
}

FileServer 表示一个文件服务器实例 该结构体封装了服务器的所有状态和功能

func New

func New(config Config) (*FileServer, error)

New 创建一个新的文件服务器实例

参数:

  • config: 服务器配置,包含端口、目录、认证信息等

返回值:

  • *FileServer: 初始化好的文件服务器实例
  • error: 如有错误,返回对应错误信息,例如目录不存在或无法访问

使用示例: ```

config := server.Config{
    Port: 8080,
    Dir: "./files",
    AuthType: auth.NoAuth,
    EnableDirListing: true,
    Theme: "default",
}

srv, err := server.New(config)

if err != nil {
    log.Fatalf("创建服务器失败: %v", err)
}

```

func (*FileServer) GetAbsDir

func (fs *FileServer) GetAbsDir() string

GetAbsDir 获取文件服务器的绝对路径

返回值:

  • string: 服务器提供服务的目录绝对路径

使用示例: ``` absPath := srv.GetAbsDir() fmt.Printf("服务器的绝对路径: %s\n", absPath) ```

func (*FileServer) Start

func (fs *FileServer) Start() error

Start 启动文件服务器 此方法会阻塞执行,直到服务器停止或出错

返回值:

  • error: 如果服务器启动失败,返回错误信息

使用示例: ``` err := srv.Start()

if err != nil {
    log.Fatalf("服务器启动失败: %v", err)
}

```

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL