ftp

package
v4.3.6 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2025 License: AGPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleSIZE

func HandleSIZE(param string, client ftpserver.ClientDriver) (int, string)

HandleSIZE 处理FTP SIZE命令,用于设置下一个上传文件的大小 param: SIZE命令的参数(文件大小) client: FTP客户端驱动 返回状态码和响应消息

func List

func List(ctx context.Context, path string) ([]os.FileInfo, error)

List 列出目录内容 ctx: 上下文,包含用户信息 path: 目录路径 返回目录中文件信息的列表和错误

func Mkdir

func Mkdir(ctx context.Context, path string) error

Mkdir 在指定路径创建目录 ctx: 上下文,包含用户信息 path: 目录路径

func Remove

func Remove(ctx context.Context, path string) error

Remove 删除指定路径的文件或目录 ctx: 上下文,包含用户信息 path: 文件或目录路径

func Rename

func Rename(ctx context.Context, oldPath, newPath string) error

Rename 重命名或移动文件/目录 ctx: 上下文,包含用户信息 oldPath: 原路径 newPath: 新路径

func Stat

func Stat(ctx context.Context, path string) (os.FileInfo, error)

Stat 获取文件或目录的信息 ctx: 上下文,包含用户信息 path: 文件路径 返回文件信息和错误

Types

type AferoAdapter

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

AferoAdapter 实现了afero.Fs接口,用于将OpenList的文件系统操作适配到Afero接口

func NewAferoAdapter

func NewAferoAdapter(ctx context.Context) *AferoAdapter

NewAferoAdapter 创建一个新的AferoAdapter实例

func (*AferoAdapter) Chmod

func (a *AferoAdapter) Chmod(_ string, _ os.FileMode) error

Chmod 更改文件或目录的权限(不支持)

func (*AferoAdapter) Chown

func (a *AferoAdapter) Chown(_ string, _, _ int) error

Chown 更改文件或目录的所有者(不支持)

func (*AferoAdapter) Chtimes

func (a *AferoAdapter) Chtimes(_ string, _ time.Time, _ time.Time) error

Chtimes 更改文件或目录的访问和修改时间(不支持)

func (*AferoAdapter) Create

func (a *AferoAdapter) Create(_ string) (afero.File, error)

Create 创建文件(未实现,使用GetHandle代替)

func (*AferoAdapter) GetHandle

func (a *AferoAdapter) GetHandle(name string, flags int, offset int64) (ftpserver.FileTransfer, error)

GetHandle 获取文件传输句柄,用于文件上传和下载

func (*AferoAdapter) Mkdir

func (a *AferoAdapter) Mkdir(name string, _ os.FileMode) error

Mkdir 创建目录

func (*AferoAdapter) MkdirAll

func (a *AferoAdapter) MkdirAll(path string, perm os.FileMode) error

MkdirAll 创建目录及其所有不存在的父目录

func (*AferoAdapter) Name

func (a *AferoAdapter) Name() string

Name 返回文件系统的名称

func (*AferoAdapter) Open

func (a *AferoAdapter) Open(_ string) (afero.File, error)

Open 打开文件(未实现,使用GetHandle代替)

func (*AferoAdapter) OpenFile

func (a *AferoAdapter) OpenFile(_ string, _ int, _ os.FileMode) (afero.File, error)

OpenFile 打开文件(未实现,使用GetHandle代替)

func (*AferoAdapter) ReadDir

func (a *AferoAdapter) ReadDir(name string) ([]os.FileInfo, error)

ReadDir 读取目录内容

func (*AferoAdapter) Remove

func (a *AferoAdapter) Remove(name string) error

Remove 删除文件或目录

func (*AferoAdapter) RemoveAll

func (a *AferoAdapter) RemoveAll(path string) error

RemoveAll 删除文件或目录及其内容

func (*AferoAdapter) Rename

func (a *AferoAdapter) Rename(oldName, newName string) error

Rename 重命名文件或目录

func (*AferoAdapter) SetNextFileSize

func (a *AferoAdapter) SetNextFileSize(size int64)

SetNextFileSize 设置下一个将要上传的文件大小

func (*AferoAdapter) Site

func (a *AferoAdapter) Site(param string) *ftpserver.AnswerCommand

Site 处理FTP SITE命令

func (*AferoAdapter) Stat

func (a *AferoAdapter) Stat(name string) (os.FileInfo, error)

Stat 获取文件或目录的信息

type FileDownloadProxy

type FileDownloadProxy struct {
	model.File
	io.Closer
	// contains filtered or unexported fields
}

FileDownloadProxy 文件下载代理,实现了ftpserver.FileTransfer接口

func OpenDownload

func OpenDownload(ctx context.Context, reqPath string, offset int64) (*FileDownloadProxy, error)

OpenDownload 打开一个文件用于下载 ctx: 上下文,包含用户信息和其他元数据 reqPath: 请求的文件路径 offset: 开始读取的偏移量 返回文件下载代理和错误

func (*FileDownloadProxy) Read

func (f *FileDownloadProxy) Read(p []byte) (n int, err error)

Read 从文件读取数据

func (*FileDownloadProxy) ReadAt added in v4.1.8

func (f *FileDownloadProxy) ReadAt(p []byte, off int64) (n int, err error)

func (*FileDownloadProxy) Write

func (f *FileDownloadProxy) Write(p []byte) (n int, err error)

type FileUploadProxy

type FileUploadProxy struct {
	ftpserver.FileTransfer
	// contains filtered or unexported fields
}

FileUploadProxy 文件上传代理,实现了ftpserver.FileTransfer接口

func OpenUpload

func OpenUpload(ctx context.Context, path string, trunc bool) (*FileUploadProxy, error)

OpenUpload 打开一个文件用于上传 ctx: 上下文 path: 目标文件路径 trunc: 是否截断已存在的文件

func (*FileUploadProxy) Close

func (f *FileUploadProxy) Close() error

Close 关闭上传代理并完成文件上传

func (*FileUploadProxy) Read

func (f *FileUploadProxy) Read(p []byte) (n int, err error)

Read 从文件读取数据(不支持)

func (*FileUploadProxy) Seek

func (f *FileUploadProxy) Seek(offset int64, whence int) (int64, error)

Seek 设置下一次读写的位置

func (*FileUploadProxy) Write

func (f *FileUploadProxy) Write(p []byte) (n int, err error)

Write 向文件写入数据

type FileUploadWithLengthProxy

type FileUploadWithLengthProxy struct {
	ftpserver.FileTransfer
	// contains filtered or unexported fields
}

FileUploadWithLengthProxy 具有预定义长度的文件上传代理

func OpenUploadWithLength

func OpenUploadWithLength(ctx context.Context, path string, trunc bool, length int64) (*FileUploadWithLengthProxy, error)

OpenUploadWithLength 打开一个具有预定义长度的文件用于上传 ctx: 上下文 path: 目标文件路径 trunc: 是否截断已存在的文件 length: 文件大小

func (*FileUploadWithLengthProxy) Close

func (f *FileUploadWithLengthProxy) Close() error

Close 关闭上传代理并完成文件上传

func (*FileUploadWithLengthProxy) Read

func (f *FileUploadWithLengthProxy) Read(p []byte) (n int, err error)

Read 从文件读取数据(不支持)

func (*FileUploadWithLengthProxy) Seek

func (f *FileUploadWithLengthProxy) Seek(offset int64, whence int) (int64, error)

Seek 设置下一次读写的位置(不支持)

func (*FileUploadWithLengthProxy) Write

func (f *FileUploadWithLengthProxy) Write(p []byte) (n int, err error)

Write 向文件写入数据

type OsFileInfoAdapter

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

OsFileInfoAdapter 将model.Obj适配为os.FileInfo接口

func (*OsFileInfoAdapter) IsDir

func (o *OsFileInfoAdapter) IsDir() bool

IsDir 判断是否为目录

func (*OsFileInfoAdapter) ModTime

func (o *OsFileInfoAdapter) ModTime() time.Time

ModTime 返回修改时间

func (*OsFileInfoAdapter) Mode

func (o *OsFileInfoAdapter) Mode() fs2.FileMode

Mode 返回文件模式

func (*OsFileInfoAdapter) Name

func (o *OsFileInfoAdapter) Name() string

Name 返回文件名

func (*OsFileInfoAdapter) Size

func (o *OsFileInfoAdapter) Size() int64

Size 返回文件大小

func (*OsFileInfoAdapter) Sys

func (o *OsFileInfoAdapter) Sys() any

Sys 返回底层数据源

Jump to

Keyboard shortcuts

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