afs

package module
v0.9.13 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2025 License: MIT Imports: 12 Imported by: 43

README

afs

afs (abstract-file-system,抽象文件系统接口)提供一组简单易用的文件访问接口

Documentation

Index

Constants

View Source
const (
	WantToMakeDir    = 0x0001
	WantToReadFile   = 0x0002
	WantToWriteFile  = 0x0004
	WantToCreateFile = 0x0008
)

定义 WantOption

Variables

This section is empty.

Functions

func NewModule added in v0.9.13

func NewModule() string

func SetDefaultFSFactory

func SetDefaultFSFactory(factory FileSystemFactory) error

SetDefaultFSFactory 在调用 Default() 之前,必须设置默认的工厂

func SetDefaultOptionsBuilderFactory added in v0.9.11

func SetDefaultOptionsBuilderFactory(f OptionsBuilderFactory)

SetDefaultOptionsBuilderFactory 用于设置默认的 OptionsBuilderFactory

Types

type Driver added in v0.9.7

type Driver interface {
	Support(uri URI) bool
	Fetch(uri URI) (Path, error)
}

Driver ... 根据传入的 URI, 提供相应的 Path

type FS

type FS interface {
	NewPath(path string) Path

	NewURI(u URI) (Path, error)

	ListRoots() []Path

	CreateTempFile(prefix, suffix string, dir Path) (Path, error)

	// PathSeparator return ';'(windows) | ':'(unix)
	PathSeparator() string

	// Separator return '/'(unix) | '\'(windows)
	Separator() string
}

FS 是表示文件系统的接口

func Default

func Default() FS

Default 获取默认的FS对象

type FileIO

type FileIO interface {
	Path() Path

	OpenReader(opt *Options) (io.ReadCloser, error)

	OpenWriter(opt *Options) (io.WriteCloser, error)

	OpenSeekerR(opt *Options) (io.ReadSeekCloser, error)

	OpenSeekerW(opt *Options) (WriteSeekCloser, error)

	OpenSeekerRW(opt *Options) (ReadWriteSeekCloser, error)

	ReadText(opt *Options) (string, error)

	WriteText(text string, opt *Options) error

	WriteBinary(b []byte, opt *Options) error

	ReadBinary(opt *Options) ([]byte, error)
}

FileIO ...

type FileInfo

type FileInfo interface {
	Path() Path

	Length() int64

	CreatedAt() time.Time

	UpdatedAt() time.Time

	AccessedAt() time.Time

	Mode() fs.FileMode

	Exists() bool

	IsFile() bool

	IsDirectory() bool
}

FileInfo ...

type FileSystemFactory

type FileSystemFactory interface {
	Create() FS
}

FileSystemFactory 是用来创建 FS 对象的工厂

type FlagMaker added in v0.9.13

type FlagMaker interface {
	Flags() int

	Create() FlagMaker
	Append() FlagMaker
	Truncate() FlagMaker
	Synchronous() FlagMaker
	Excl() FlagMaker

	ReadWrite() FlagMaker
	ReadOnly() FlagMaker
	WriteOnly() FlagMaker
}

type Location added in v0.9.10

type Location struct {
	Protocol string
	User     string
	Host     string
	Port     int
	Path     string
	Query    map[string]string
}

Location 是解析后的 URI 信息

func ParseLocation added in v0.9.10

func ParseLocation(uri URI) (*Location, error)

ParseLocation 解析 Location

func (*Location) String added in v0.9.10

func (inst *Location) String() string

func (*Location) URI added in v0.9.10

func (inst *Location) URI() URI

URI 函数把这个 Location 转换为 URI

func (*Location) URL added in v0.9.10

func (inst *Location) URL() *url.URL

URL 函数把这个 Location 转换为 URL

type NopReaderPool

type NopReaderPool struct {
}

NopReaderPool ...

func (*NopReaderPool) Clean

func (inst *NopReaderPool) Clean()

Clean ...

func (*NopReaderPool) Close

func (inst *NopReaderPool) Close() error

Close ...

func (*NopReaderPool) OpenReader

func (inst *NopReaderPool) OpenReader(file Path, op *Options) (io.ReadSeekCloser, error)

OpenReader ...

type Options

type Options struct {

	// fill with fs.ModeXXX
	Permission fs.FileMode

	// fill with os.O_xxxx
	Flag int
}

Options ...

func ToCreateFile added in v0.9.3

func ToCreateFile() *Options

[Deprecated] [已废弃]:用 OptionsMaker 代替 ToCreateFile ...

func ToMakeDir added in v0.9.3

func ToMakeDir() *Options

[Deprecated] [已废弃]:用 OptionsMaker 代替 ToMakeDir ...

func ToReadFile added in v0.9.3

func ToReadFile() *Options

[Deprecated] [已废弃]:用 OptionsMaker 代替 ToReadFile ...

func ToWriteFile added in v0.9.3

func ToWriteFile() *Options

[Deprecated] [已废弃]:用 OptionsMaker 代替 ToWriteFile ...

type OptionsBuilder added in v0.9.4

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

[Deprecated] [已废弃]:用 OptionsMaker 代替 OptionsBuilder 用于创建复合的 Options

func Todo added in v0.9.3

func Todo() *OptionsBuilder

Todo 新建一个 OptionsBuilder 对象

func (*OptionsBuilder) Append added in v0.9.4

func (inst *OptionsBuilder) Append(value bool) *OptionsBuilder

Append ...

func (*OptionsBuilder) Create added in v0.9.4

func (inst *OptionsBuilder) Create(value bool) *OptionsBuilder

Create ...

func (*OptionsBuilder) Dir added in v0.9.4

func (inst *OptionsBuilder) Dir(value bool) *OptionsBuilder

Dir ...

func (*OptionsBuilder) File added in v0.9.4

func (inst *OptionsBuilder) File(value bool) *OptionsBuilder

File ...

func (*OptionsBuilder) FromBegin added in v0.9.4

func (inst *OptionsBuilder) FromBegin(value bool) *OptionsBuilder

FromBegin ...

func (*OptionsBuilder) Mkdirs added in v0.9.4

func (inst *OptionsBuilder) Mkdirs(value bool) *OptionsBuilder

Mkdirs ...

func (*OptionsBuilder) Options added in v0.9.4

func (inst *OptionsBuilder) Options() *Options

Options 创建 Options

func (*OptionsBuilder) Read added in v0.9.4

func (inst *OptionsBuilder) Read(value bool) *OptionsBuilder

Read ...

func (*OptionsBuilder) ResetLength added in v0.9.4

func (inst *OptionsBuilder) ResetLength(value bool) *OptionsBuilder

ResetLength ...

func (*OptionsBuilder) Write added in v0.9.4

func (inst *OptionsBuilder) Write(value bool) *OptionsBuilder

Write ...

type OptionsBuilderFactory added in v0.9.11

type OptionsBuilderFactory interface {
	NewBuilder() OptionsBuilderV2
}

[Deprecated] [已废弃]:用 OptionsMaker 代替 OptionsBuilderFactory 用于创建 OptionsBuilderV2

func DefaultOptionsBuilderFactory added in v0.9.11

func DefaultOptionsBuilderFactory() OptionsBuilderFactory

DefaultOptionsBuilderFactory 用于获取默认的 OptionsBuilderFactory

type OptionsBuilderV2 added in v0.9.11

type OptionsBuilderV2 interface {
	SetMode(mode fs.FileMode) OptionsBuilderV2
	SetFlag(flag int) OptionsBuilderV2

	Create() OptionsBuilderV2
	ReadOnly() OptionsBuilderV2
	WriteOnly() OptionsBuilderV2
	ReadWrite() OptionsBuilderV2
	Append() OptionsBuilderV2
	Truncate() OptionsBuilderV2
	Excl() OptionsBuilderV2
	Synchronous() OptionsBuilderV2

	Options() *Options
}

[Deprecated] [已废弃]:用 OptionsMaker 代替 OptionsBuilderV2 是第二版的 Options-Builder 接口

type OptionsHandlerFunc

type OptionsHandlerFunc func(path string, opt *Options, want WantOption) *Options

OptionsHandlerFunc 函数用于为I/O操作准备选项

type OptionsMaker added in v0.9.13

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

func (*OptionsMaker) Append added in v0.9.13

func (inst *OptionsMaker) Append() FlagMaker

func (*OptionsMaker) Create added in v0.9.13

func (inst *OptionsMaker) Create() FlagMaker

func (*OptionsMaker) Excl added in v0.9.13

func (inst *OptionsMaker) Excl() FlagMaker

func (*OptionsMaker) Flags added in v0.9.13

func (inst *OptionsMaker) Flags() int

func (*OptionsMaker) Mode added in v0.9.13

func (inst *OptionsMaker) Mode() fs.FileMode

func (*OptionsMaker) Options added in v0.9.13

func (inst *OptionsMaker) Options() Options

func (*OptionsMaker) ReadOnly added in v0.9.13

func (inst *OptionsMaker) ReadOnly() FlagMaker

func (*OptionsMaker) ReadWrite added in v0.9.13

func (inst *OptionsMaker) ReadWrite() FlagMaker

func (*OptionsMaker) SetDir added in v0.9.13

func (inst *OptionsMaker) SetDir(isDir bool) PermissionMaker

func (*OptionsMaker) SetFlags added in v0.9.13

func (inst *OptionsMaker) SetFlags() FlagMaker

func (*OptionsMaker) SetMode added in v0.9.13

func (inst *OptionsMaker) SetMode(owner, group, other int) PermissionMaker

func (*OptionsMaker) SetPermissions added in v0.9.13

func (inst *OptionsMaker) SetPermissions() PermissionMaker

func (*OptionsMaker) Synchronous added in v0.9.13

func (inst *OptionsMaker) Synchronous() FlagMaker

func (*OptionsMaker) Truncate added in v0.9.13

func (inst *OptionsMaker) Truncate() FlagMaker

func (*OptionsMaker) WriteOnly added in v0.9.13

func (inst *OptionsMaker) WriteOnly() FlagMaker

type Path

type Path interface {
	Exists() bool

	IsFile() bool

	IsDirectory() bool

	GetName() string

	GetPath() string

	GetURI() URI

	// 获取文件(或目录)的信息,如果已有缓存就直接返回,否则就重新加载
	GetInfo() FileInfo

	// 读取文件(或目录)的信息,如果 reload==true, 则忽略缓存
	ReadInfo(reload bool) FileInfo

	String() string

	GetFS() FS

	GetParent() Path

	GetChild(name string) Path

	ListNames() []string

	ListPaths() []string

	ListChildren() []Path

	Mkdir(opt *Options) error

	Mkdirs(opt *Options) error

	MakeParents(opt *Options) error

	Chmod(m fs.FileMode) error

	Chown(uid, gid int) error

	Delete() error

	Create(opt *Options) error

	CreateWithData(data []byte, opt *Options) error

	CreateWithSource(src io.Reader, opt *Options) error

	MoveTo(dst Path, opt *Options) error

	CopyTo(dst Path, opt *Options) error

	GetIO() FileIO
}

Path 是表示绝对路径的接口

type PathElements added in v0.9.10

type PathElements struct {
}

PathElements 提供一组工具函数,用来处理路径中的各个项

func (*PathElements) Resolve added in v0.9.10

func (inst *PathElements) Resolve(elist []string) ([]string, error)

Resolve 把路径中的特殊元素 (.|..|~|""|等) 处理,输出纯粹的路径

func (*PathElements) Split added in v0.9.10

func (inst *PathElements) Split(path string) []string

Split 把路径字符串拆分成各个元素

func (*PathElements) Stringify added in v0.9.10

func (inst *PathElements) Stringify(elist []string, prefix string, sep rune) string

Stringify 把一组路径元素拼合成字符串

type PermissionMaker added in v0.9.13

type PermissionMaker interface {
	Mode() fs.FileMode

	SetMode(owner, group, other int) PermissionMaker

	SetDir(isDir bool) PermissionMaker
}

type ReadWriteSeekCloser

type ReadWriteSeekCloser interface {
	io.Closer
	io.ReadWriteSeeker
}

ReadWriteSeekCloser ...

type ReaderPool

type ReaderPool interface {
	io.Closer
	Clean()
	OpenReader(file Path, op *Options) (io.ReadSeekCloser, error)
}

ReaderPool ...

type Registration added in v0.9.7

type Registration struct {
	Name     string
	Enabled  bool
	Priority int
	Driver   Driver
}

Registration ...

type Registry added in v0.9.7

type Registry interface {
	Registration() *Registration
}

Registry ...

type Service added in v0.9.7

type Service interface {
	Fetch(uri URI) (Path, error)
}

Service ... 根据传入的 URI,查找相应的 Path

type URI added in v0.9.7

type URI string

URI 以 string(URI) 的形式表示一个 node

func (URI) String added in v0.9.7

func (u URI) String() string

func (URI) URL added in v0.9.7

func (u URI) URL() (*url.URL, error)

URL 把字符串转换为 URL 结构

type WantOption

type WantOption int32

WantOption 。。。

type WriteSeekCloser

type WriteSeekCloser interface {
	io.Closer
	io.WriteSeeker
}

WriteSeekCloser ...

Directories

Path Synopsis
src

Jump to

Keyboard shortcuts

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