gcsfs

package
v2.0.7 Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoBucketInName     = errors.New("名称中未找到存储桶名称") // 没有找到 bucket 名称的错误
	ErrFileClosed         = errors.New("文件已关闭")       // 文件已关闭的错误
	ErrOutOfRange         = errors.New("超出范围")        // 超出范围的错误
	ErrObjectDoesNotExist = errors.New("存储:对象不存在")    // 对象不存在的错误
	ErrEmptyObjectName    = errors.New("存储:对象名称为空")   // 对象名称为空的错误
	ErrFileNotFound       = syscall.ENOENT            // 文件未找到的错误
)

定义错误变量

Functions

func NewGcsFS

func NewGcsFS(ctx context.Context, opts ...option.ClientOption) (afero.Afero, error)

NewGcsFS 创建一个 GCS 文件系统,自动实例化和装饰存储客户端。 可以提供额外的选项传递给客户端创建,如 cloud.google.com/go/storage 文档所述 参数:

  • ctx: 上下文,用于控制请求的生命周期
  • opts: 可选的客户端选项,用于配置存储客户端

返回:

  • afero.Afero: 创建的 GCS 文件系统
  • error: 可能出现的错误

func NewGcsFSFromClient

func NewGcsFSFromClient(ctx context.Context, client *storage.Client) (afero.Afero, error)

NewGcsFSFromClient 从给定的存储客户端创建 GCS 文件系统 参数:

  • ctx: 上下文,用于控制请求的生命周期
  • client: 已创建的存储客户端

返回:

  • afero.Afero: 创建的 GCS 文件系统
  • error: 可能出现的错误

func NewGcsFSFromClientWithSeparator

func NewGcsFSFromClientWithSeparator(ctx context.Context, client *storage.Client, folderSeparator string) (afero.Afero, error)

NewGcsFSFromClientWithSeparator 与 NewGcsFSFromClient 类似,但文件系统将使用提供的文件夹分隔符 参数:

  • ctx: 上下文,用于控制请求的生命周期
  • client: 已创建的存储客户端
  • folderSeparator: 文件夹分隔符

返回:

  • afero.Afero: 创建的 GCS 文件系统
  • error: 可能出现的错误

func NewGcsFSWithSeparator

func NewGcsFSWithSeparator(ctx context.Context, folderSeparator string, opts ...option.ClientOption) (afero.Afero, error)

NewGcsFSWithSeparator 与 NewGcsFS 类似,但文件系统将使用提供的文件夹分隔符 参数:

  • ctx: 上下文,用于控制请求的生命周期
  • folderSeparator: 文件夹分隔符
  • opts: 可选的客户端选项,用于配置存储客户端

返回:

  • afero.Afero: 创建的 GCS 文件系统
  • error: 可能出现的错误

Types

type ByName

type ByName []*FileInfo

ByName 实现对 FileInfo 切片的排序

func (ByName) Len

func (a ByName) Len() int

Len 返回切片长度 返回:

  • int: 切片长度

func (ByName) Less

func (a ByName) Less(i, j int) bool

Less 比较切片中两个元素的名称 参数:

  • i: 第一个元素索引
  • j: 第二个元素索引

返回:

  • bool: 第一个元素名称是否小于第二个元素名称

func (ByName) Swap

func (a ByName) Swap(i, j int)

Swap 交换切片中两个元素的位置 参数:

  • i: 第一个元素索引
  • j: 第二个元素索引

type FileInfo

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

FileInfo 结构体用于保存文件信息

func (*FileInfo) IsDir

func (fi *FileInfo) IsDir() bool

IsDir 判断是否为目录 返回:

  • bool: 是否为目录

func (*FileInfo) ModTime

func (fi *FileInfo) ModTime() time.Time

ModTime 返回文件修改时间 返回:

  • time.Time: 文件修改时间

func (*FileInfo) Mode

func (fi *FileInfo) Mode() os.FileMode

Mode 返回文件模式 返回:

  • os.FileMode: 文件模式

func (*FileInfo) Name

func (fi *FileInfo) Name() string

Name 返回文件名称 返回:

  • string: 文件名称

func (*FileInfo) Size

func (fi *FileInfo) Size() int64

Size 返回文件大小 返回:

  • int64: 文件大小

func (*FileInfo) Sys

func (fi *FileInfo) Sys() interface{}

Sys 返回文件系统信息 返回:

  • interface{}: 文件系统信息

type Fs

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

Fs 是一个使用 Google Cloud Storage 函数的文件系统实现

func NewGcsFs

func NewGcsFs(ctx context.Context, client stiface.Client) *Fs

NewGcsFs 创建一个新的 GCS 文件系统 参数:

  • ctx: 上下文
  • client: GCS 客户端

返回:

  • Fs: GCS 文件系统实例

func NewGcsFsWithSeparator

func NewGcsFsWithSeparator(ctx context.Context, client stiface.Client, folderSep string) *Fs

NewGcsFsWithSeparator 创建一个带有自定义文件夹分隔符的 GCS 文件系统 参数:

  • ctx: 上下文
  • client: GCS 客户端
  • folderSep: 文件夹分隔符

返回:

  • Fs: GCS 文件系统实例

func (*Fs) Chmod

func (fs *Fs) Chmod(_ string, _ os.FileMode) error

Chmod 修改文件或目录的权限 参数:

  • name: 文件或目录名称
  • mode: 文件模式

返回:

  • 错误(因为此方法未实现)

func (*Fs) Chown

func (fs *Fs) Chown(_ string, _, _ int) error

Chown 修改文件或目录的所有者 参数:

  • name: 文件或目录名称
  • uid: 用户ID
  • gid: 组ID

返回:

  • 错误(因为此方法未实现)

func (*Fs) Chtimes

func (fs *Fs) Chtimes(_ string, _, _ time.Time) error

Chtimes 修改文件或目录的访问时间和修改时间 参数:

  • name: 文件或目录名称
  • atime: 访问时间
  • mtime: 修改时间

返回:

  • 错误(因为此方法未实现)

func (*Fs) Create

func (fs *Fs) Create(name string) (*GcsFile, error)

Create 创建文件 参数:

  • name: 文件名称

返回:

  • file: 创建的文件
  • err: 可能的错误

func (*Fs) Mkdir

func (fs *Fs) Mkdir(name string, _ os.FileMode) error

Mkdir 创建目录 参数:

  • name: 目录名称
  • _ : 文件模式(未使用)

返回:

  • 可能的错误

func (*Fs) MkdirAll

func (fs *Fs) MkdirAll(path string, perm os.FileMode) error

MkdirAll 创建多级目录 参数:

  • path: 目录路径
  • perm: 文件模式

返回:

  • 可能的错误

func (*Fs) Name

func (fs *Fs) Name() string

Name 返回文件系统名称

func (*Fs) Open

func (fs *Fs) Open(name string) (*GcsFile, error)

Open 打开文件 参数:

  • name: 文件名称

返回:

  • GcsFile: 打开的文件
  • 可能的错误

func (*Fs) OpenFile

func (fs *Fs) OpenFile(name string, flag int, fileMode os.FileMode) (*GcsFile, error)

OpenFile 以指定模式打开文件 参数:

  • name: 文件名称
  • flag: 打开模式
  • fileMode: 文件模式

返回:

  • GcsFile: 打开的文件
  • 可能的错误

func (*Fs) Remove

func (fs *Fs) Remove(name string) error

Remove 删除文件或目录 参数:

  • name: 文件或目录名称

返回:

  • 可能的错误

func (*Fs) RemoveAll

func (fs *Fs) RemoveAll(path string) error

RemoveAll 删除指定路径及其内容 参数:

  • path: 路径名称

返回:

  • 可能的错误

func (*Fs) Rename

func (fs *Fs) Rename(oldName, newName string) error

Rename 重命名文件或目录 参数:

  • oldName: 旧名称
  • newName: 新名称

返回:

  • 可能的错误

func (*Fs) Stat

func (fs *Fs) Stat(name string) (os.FileInfo, error)

Stat 获取文件或目录的信息 参数:

  • name: 文件或目录名称

返回:

  • os.FileInfo: 文件或目录信息
  • 可能的错误

type GcsFile

type GcsFile struct {
	ReadDirIt stiface.ObjectIterator // 目录读取迭代器
	// contains filtered or unexported fields
}

GcsFile 是 Afero 版本适配 GCS 的文件类型

func NewGcsFile

func NewGcsFile(
	ctx context.Context,
	fs *Fs,
	obj stiface.ObjectHandle,
	openFlags int,
	fileMode os.FileMode,
	name string,
) *GcsFile

NewGcsFile 创建一个新的 GcsFile 实例 参数:

  • ctx: 上下文对象
  • fs: 文件系统实例
  • obj: GCS 对象句柄
  • openFlags: 打开文件的标志
  • fileMode: 文件模式(暂时未使用)
  • name: 文件名称

返回:

  • *GcsFile: 创建的 GcsFile 实例

func NewGcsFileFromOldFH

func NewGcsFileFromOldFH(
	openFlags int,
	fileMode os.FileMode,
	oldFile *gcsFileResource,
) *GcsFile

NewGcsFileFromOldFH 从旧的文件句柄资源创建一个新的 GcsFile 实例 参数:

  • openFlags: 打开文件的标志
  • fileMode: 文件模式
  • oldFile: 旧的 GCS 文件资源

返回:

  • *GcsFile: 创建的 GcsFile 实例

func (*GcsFile) Close

func (o *GcsFile) Close() error

Close 关闭文件 返回:

  • error: 可能出现的错误

func (*GcsFile) Name

func (o *GcsFile) Name() string

Name 返回文件的名称

func (*GcsFile) Read

func (o *GcsFile) Read(p []byte) (n int, err error)

Read 从文件中读取数据到给定的字节切片中 参数:

  • p: 字节切片

返回:

  • int: 读取的字节数
  • error: 可能出现的错误

func (*GcsFile) ReadAt

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

ReadAt 从文件的指定偏移量处读取数据到给定的字节切片中 参数:

  • p: 字节切片
  • off: 偏移量

返回:

  • int: 读取的字节数
  • error: 可能出现的错误

func (*GcsFile) Readdir

func (o *GcsFile) Readdir(count int) ([]os.FileInfo, error)

Readdir 读取目录中的目录项 参数:

  • count: 要读取的目录项数

返回:

  • []os.FileInfo: 读取的文件信息切片
  • error: 可能出现的错误

func (*GcsFile) Readdirnames

func (o *GcsFile) Readdirnames(n int) ([]string, error)

Readdirnames 读取目录中的目录项名称 参数:

  • n: 要读取的目录项数

返回:

  • []string: 读取的目录项名称切片
  • error: 可能出现的错误

func (*GcsFile) Seek

func (o *GcsFile) Seek(newOffset int64, whence int) (int64, error)

Seek 设置文件偏移量 参数:

  • newOffset: 新的偏移量
  • whence: 偏移量的基准位置

返回:

  • int64: 新的文件偏移量
  • error: 可能出现的错误

func (*GcsFile) Stat

func (o *GcsFile) Stat() (os.FileInfo, error)

Stat 返回文件的信息 返回:

  • os.FileInfo: 文件信息
  • error: 可能出现的错误

func (*GcsFile) Sync

func (o *GcsFile) Sync() error

Sync 同步文件的状态 返回:

  • error: 可能出现的错误

func (*GcsFile) Truncate

func (o *GcsFile) Truncate(wantedSize int64) error

Truncate 截断文件到指定大小 参数:

  • wantedSize: 目标大小

返回:

  • error: 可能出现的错误

func (*GcsFile) Write

func (o *GcsFile) Write(p []byte) (n int, err error)

Write 将给定的字节切片写入文件 参数:

  • p: 字节切片

返回:

  • int: 写入的字节数
  • error: 可能出现的错误

func (*GcsFile) WriteAt

func (o *GcsFile) WriteAt(b []byte, off int64) (n int, err error)

WriteAt 将给定的字节切片写入文件的指定偏移量处 参数:

  • b: 字节切片
  • off: 偏移量

返回:

  • int: 写入的字节数
  • error: 可能出现的错误

func (*GcsFile) WriteString

func (o *GcsFile) WriteString(s string) (ret int, err error)

WriteString 将字符串写入文件 参数:

  • s: 字符串

返回:

  • int: 写入的字节数
  • error: 可能出现的错误

type GcsFs

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

GcsFs 结构体包装了一个 GCS 文件系统的源

func (*GcsFs) Chmod

func (fs *GcsFs) Chmod(name string, mode os.FileMode) error

Chmod 修改文件权限 参数:

  • name: 文件名
  • mode: 新的文件权限

返回:

  • error: 可能出现的错误

func (*GcsFs) Chown

func (fs *GcsFs) Chown(name string, uid, gid int) error

Chown 修改文件的所有者和所有组 参数:

  • name: 文件名
  • uid: 新的用户 ID
  • gid: 新的组 ID

返回:

  • error: 可能出现的错误

func (*GcsFs) Chtimes

func (fs *GcsFs) Chtimes(name string, atime time.Time, mtime time.Time) error

Chtimes 修改文件的访问和修改时间 参数:

  • name: 文件名
  • atime: 新的访问时间
  • mtime: 新的修改时间

返回:

  • error: 可能出现的错误

func (*GcsFs) Create

func (fs *GcsFs) Create(name string) (afero.File, error)

Create 创建一个新的文件 参数:

  • name: 文件名

返回:

  • afero.File: 创建的文件
  • error: 可能出现的错误

func (*GcsFs) Mkdir

func (fs *GcsFs) Mkdir(name string, perm os.FileMode) error

Mkdir 创建一个新的目录 参数:

  • name: 目录名
  • perm: 权限

返回:

  • error: 可能出现的错误

func (*GcsFs) MkdirAll

func (fs *GcsFs) MkdirAll(path string, perm os.FileMode) error

MkdirAll 创建一个新的目录,包括所有必要的父目录 参数:

  • path: 目录路径
  • perm: 权限

返回:

  • error: 可能出现的错误

func (*GcsFs) Name

func (fs *GcsFs) Name() string

GcsFs 包装了一些 gcs.GcsFs 并将一些返回类型转换为 afero 接口。 Name 返回文件系统的名称 返回:

  • string: 文件系统的名称

func (*GcsFs) Open

func (fs *GcsFs) Open(name string) (afero.File, error)

Open 打开一个文件 参数:

  • name: 文件名

返回:

  • afero.File: 打开的文件
  • error: 可能出现的错误

func (*GcsFs) OpenFile

func (fs *GcsFs) OpenFile(name string, flag int, perm os.FileMode) (afero.File, error)

OpenFile 以指定的模式和权限打开一个文件 参数:

  • name: 文件名
  • flag: 模式标志
  • perm: 权限

返回:

  • afero.File: 打开的文件
  • error: 可能出现的错误

func (*GcsFs) Remove

func (fs *GcsFs) Remove(name string) error

Remove 删除一个文件 参数:

  • name: 文件名

返回:

  • error: 可能出现的错误

func (*GcsFs) RemoveAll

func (fs *GcsFs) RemoveAll(path string) error

RemoveAll 删除一个目录及其包含的所有内容 参数:

  • path: 目录路径

返回:

  • error: 可能出现的错误

func (*GcsFs) Rename

func (fs *GcsFs) Rename(oldname, newname string) error

Rename 重命名一个文件或目录 参数:

  • oldname: 旧名称
  • newname: 新名称

返回:

  • error: 可能出现的错误

func (*GcsFs) Stat

func (fs *GcsFs) Stat(name string) (os.FileInfo, error)

Stat 获取文件信息 参数:

  • name: 文件名

返回:

  • os.FileInfo: 文件信息
  • error: 可能出现的错误

Jump to

Keyboard shortcuts

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