cloud

package
v1.1.8 Latest Latest
Warning

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

Go to latest
Published: May 7, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCOS

func NewCOS(config COSConfig) (core.FileSystem, error)

NewCOS 创建新的腾讯云对象存储文件系统

func RegisterToManager

func RegisterToManager(manager interface{}, cloudManager *CloudManager) error

RegisterToManager 将云存储驱动注册到存储管理器

func ResolveCloudDriver

func ResolveCloudDriver(ctx context.Context, driverType string, config map[string]interface{}) (core.FileSystem, error)

ResolveCloudDriver 根据驱动类型创建云存储驱动

Types

type COSConfig

type COSConfig struct {
	// 腾讯云 AppID
	AppID string

	// 腾讯云 SecretID
	SecretID string

	// 腾讯云 SecretKey
	SecretKey string

	// 存储桶名称
	Bucket string

	// 区域
	Region string

	// 是否使用HTTPS
	UseSSL bool

	// 自定义域名(CDN等)
	PublicURL string

	// 默认文件可见性(public 或 private)
	DefaultVisibility string

	// 临时URL过期时间(秒)
	UrlExpiry int64
}

COSConfig 腾讯云对象存储配置

func DefaultCOSConfig

func DefaultCOSConfig() COSConfig

DefaultCOSConfig 返回默认COS配置

type COSFile

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

COSFile 表示COS中的文件

func (*COSFile) Extension

func (f *COSFile) Extension() string

Extension 返回文件的扩展名

func (*COSFile) IsDirectory

func (f *COSFile) IsDirectory() bool

IsDirectory 判断是否为目录

func (*COSFile) LastModified

func (f *COSFile) LastModified() time.Time

LastModified 返回文件的最后修改时间

func (*COSFile) Metadata

func (f *COSFile) Metadata() map[string]interface{}

Metadata 获取文件的元数据

func (*COSFile) MimeType

func (f *COSFile) MimeType() string

MimeType 返回文件的MIME类型

func (*COSFile) Name

func (f *COSFile) Name() string

Name 返回文件的名称

func (*COSFile) Path

func (f *COSFile) Path() string

Path 返回文件的路径

func (*COSFile) Read

func (f *COSFile) Read(ctx context.Context) ([]byte, error)

Read 读取文件内容

func (*COSFile) ReadStream

func (f *COSFile) ReadStream(ctx context.Context) (io.ReadCloser, error)

ReadStream 获取文件的读取流

func (*COSFile) Size

func (f *COSFile) Size() int64

Size 返回文件的大小

func (*COSFile) TemporaryURL

func (f *COSFile) TemporaryURL(ctx context.Context, expiration time.Duration) (string, error)

TemporaryURL 获取文件的临时URL

func (*COSFile) URL

func (f *COSFile) URL() string

URL 获取文件的URL

func (*COSFile) Visibility

func (f *COSFile) Visibility() string

Visibility 返回文件的可见性

type COSFileSystem

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

COSFileSystem 腾讯云对象存储文件系统

func (*COSFileSystem) AllDirectories

func (fs *COSFileSystem) AllDirectories(ctx context.Context, directory string) ([]string, error)

AllDirectories 递归列出目录下的所有子目录

func (*COSFileSystem) AllFiles

func (fs *COSFileSystem) AllFiles(ctx context.Context, directory string) ([]core.File, error)

AllFiles 递归列出目录下的所有文件

func (*COSFileSystem) Checksum

func (fs *COSFileSystem) Checksum(ctx context.Context, path string, algorithm string) (string, error)

Checksum 计算文件校验和

func (*COSFileSystem) Copy

func (fs *COSFileSystem) Copy(ctx context.Context, source, destination string) error

Copy 复制文件

func (*COSFileSystem) CreateDirectory

func (fs *COSFileSystem) CreateDirectory(ctx context.Context, path string, options ...core.WriteOption) error

CreateDirectory 创建目录

func (*COSFileSystem) Delete

func (fs *COSFileSystem) Delete(ctx context.Context, path string) error

Delete 删除文件

func (*COSFileSystem) DeleteDirectory

func (fs *COSFileSystem) DeleteDirectory(ctx context.Context, path string) error

DeleteDirectory 删除目录及其内容

func (*COSFileSystem) Directories

func (fs *COSFileSystem) Directories(ctx context.Context, directory string) ([]string, error)

Directories 列出目录下的所有子目录

func (*COSFileSystem) Exists

func (fs *COSFileSystem) Exists(ctx context.Context, path string) (bool, error)

Exists 检查文件是否存在

func (*COSFileSystem) Files

func (fs *COSFileSystem) Files(ctx context.Context, directory string) ([]core.File, error)

Files 列出目录下的所有文件

func (*COSFileSystem) Get

func (fs *COSFileSystem) Get(ctx context.Context, path string) (core.File, error)

Get 获取指定路径的文件

func (*COSFileSystem) LastModified

func (fs *COSFileSystem) LastModified(ctx context.Context, path string) (time.Time, error)

LastModified 获取文件修改时间

func (*COSFileSystem) MimeType

func (fs *COSFileSystem) MimeType(ctx context.Context, path string) (string, error)

MimeType 获取文件MIME类型

func (*COSFileSystem) Move

func (fs *COSFileSystem) Move(ctx context.Context, source, destination string) error

Move 移动文件

func (*COSFileSystem) SetVisibility

func (fs *COSFileSystem) SetVisibility(ctx context.Context, path string, visibility string) error

SetVisibility 设置文件可见性

func (*COSFileSystem) Size

func (fs *COSFileSystem) Size(ctx context.Context, path string) (int64, error)

Size 获取文件大小

func (*COSFileSystem) TemporaryURL

func (fs *COSFileSystem) TemporaryURL(ctx context.Context, path string, expiration time.Duration) (string, error)

TemporaryURL 获取临时URL

func (*COSFileSystem) URL

func (fs *COSFileSystem) URL(ctx context.Context, path string) string

URL 获取文件URL

func (*COSFileSystem) Visibility

func (fs *COSFileSystem) Visibility(ctx context.Context, path string) (string, error)

Visibility 获取文件可见性

func (*COSFileSystem) Write

func (fs *COSFileSystem) Write(ctx context.Context, path string, content []byte, options ...core.WriteOption) error

Write 写入文件内容

func (*COSFileSystem) WriteStream

func (fs *COSFileSystem) WriteStream(ctx context.Context, path string, content io.Reader, options ...core.WriteOption) error

WriteStream 通过流写入文件

type CloudManager

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

CloudManager 云存储管理器

func NewCloudManager

func NewCloudManager() *CloudManager

NewCloudManager 创建云存储管理器

func (*CloudManager) GetCloud

func (m *CloudManager) GetCloud(name string) (core.FileSystem, error)

GetCloud 获取云存储驱动

func (*CloudManager) GetCloudNames

func (m *CloudManager) GetCloudNames() []string

GetCloudNames 获取所有已注册的云存储驱动名称

func (*CloudManager) HasCloud

func (m *CloudManager) HasCloud(name string) bool

HasCloud 检查云存储驱动是否存在

func (*CloudManager) RegisterCloud

func (m *CloudManager) RegisterCloud(name string, fs core.FileSystem) error

RegisterCloud 注册云存储驱动

func (*CloudManager) UnregisterCloud

func (m *CloudManager) UnregisterCloud(name string) error

UnregisterCloud 注销云存储驱动

type OSSConfig

type OSSConfig struct {
	// Endpoint 端点URL
	Endpoint string

	// AccessKeyID 访问密钥ID
	AccessKeyID string

	// AccessKeySecret 访问密钥
	AccessKeySecret string

	// Bucket 存储桶名称
	Bucket string

	// PublicURL 公共URL前缀
	PublicURL string

	// UseSSL 是否使用SSL
	UseSSL bool

	// DefaultVisibility 默认可见性
	DefaultVisibility string

	// ConnectTimeout 连接超时
	ConnectTimeout time.Duration

	// ReadWriteTimeout 读写超时
	ReadWriteTimeout time.Duration

	// EnableCRC 是否启用CRC校验
	EnableCRC bool
}

OSSConfig 阿里云OSS配置选项

func DefaultOSSConfig

func DefaultOSSConfig() OSSConfig

DefaultOSSConfig 返回默认OSS配置

type OSSFile

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

OSSFile 表示OSS上的文件

func (*OSSFile) Extension

func (f *OSSFile) Extension() string

Extension 实现storage.File接口

func (*OSSFile) IsDirectory

func (f *OSSFile) IsDirectory() bool

IsDirectory 实现storage.File接口

func (*OSSFile) LastModified

func (f *OSSFile) LastModified() time.Time

LastModified 实现storage.File接口

func (*OSSFile) Metadata

func (f *OSSFile) Metadata() map[string]interface{}

Metadata 实现storage.File接口

func (*OSSFile) MimeType

func (f *OSSFile) MimeType() string

MimeType 实现storage.File接口

func (*OSSFile) Name

func (f *OSSFile) Name() string

Name 实现storage.File接口

func (*OSSFile) Path

func (f *OSSFile) Path() string

Path 实现storage.File接口

func (*OSSFile) Read

func (f *OSSFile) Read(ctx context.Context) ([]byte, error)

Read 实现storage.File接口

func (*OSSFile) ReadStream

func (f *OSSFile) ReadStream(ctx context.Context) (io.ReadCloser, error)

ReadStream 实现storage.File接口

func (*OSSFile) Size

func (f *OSSFile) Size() int64

Size 实现storage.File接口

func (*OSSFile) TemporaryURL

func (f *OSSFile) TemporaryURL(ctx context.Context, expiration time.Duration) (string, error)

TemporaryURL 实现storage.File接口

func (*OSSFile) URL

func (f *OSSFile) URL() string

URL 实现storage.File接口

func (*OSSFile) Visibility

func (f *OSSFile) Visibility() string

Visibility 实现storage.File接口

type OSSFileSystem

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

OSSFileSystem 实现基于OSS的文件系统

func NewOSS

func NewOSS(cfg OSSConfig) (*OSSFileSystem, error)

New 创建新的OSS文件系统

func (*OSSFileSystem) AllDirectories

func (fs *OSSFileSystem) AllDirectories(ctx context.Context, directory string) ([]string, error)

AllDirectories 实现storage.FileSystem接口

func (*OSSFileSystem) AllFiles

func (fs *OSSFileSystem) AllFiles(ctx context.Context, directory string) ([]storage.File, error)

AllFiles 实现storage.FileSystem接口

func (*OSSFileSystem) Checksum

func (fs *OSSFileSystem) Checksum(ctx context.Context, path, algorithm string) (string, error)

Checksum 实现storage.FileSystem接口

func (*OSSFileSystem) Copy

func (fs *OSSFileSystem) Copy(ctx context.Context, source, destination string) error

Copy 实现storage.FileSystem接口

func (*OSSFileSystem) CreateDirectory

func (fs *OSSFileSystem) CreateDirectory(ctx context.Context, path string, options ...storage.WriteOption) error

CreateDirectory 实现storage.FileSystem接口

func (*OSSFileSystem) Delete

func (fs *OSSFileSystem) Delete(ctx context.Context, path string) error

Delete 实现storage.FileSystem接口

func (*OSSFileSystem) DeleteDirectory

func (fs *OSSFileSystem) DeleteDirectory(ctx context.Context, path string) error

DeleteDirectory 实现storage.FileSystem接口

func (*OSSFileSystem) Directories

func (fs *OSSFileSystem) Directories(ctx context.Context, directory string) ([]string, error)

Directories 实现storage.FileSystem接口

func (*OSSFileSystem) Exists

func (fs *OSSFileSystem) Exists(ctx context.Context, path string) (bool, error)

Exists 实现storage.FileSystem接口

func (*OSSFileSystem) Files

func (fs *OSSFileSystem) Files(ctx context.Context, directory string) ([]storage.File, error)

Files 实现storage.FileSystem接口

func (*OSSFileSystem) Get

func (fs *OSSFileSystem) Get(ctx context.Context, path string) (storage.File, error)

Get 实现storage.FileSystem接口

func (*OSSFileSystem) LastModified

func (fs *OSSFileSystem) LastModified(ctx context.Context, path string) (time.Time, error)

LastModified 实现storage.FileSystem接口

func (*OSSFileSystem) MimeType

func (fs *OSSFileSystem) MimeType(ctx context.Context, path string) (string, error)

MimeType 实现storage.FileSystem接口

func (*OSSFileSystem) Move

func (fs *OSSFileSystem) Move(ctx context.Context, source, destination string) error

Move 实现storage.FileSystem接口

func (*OSSFileSystem) SetVisibility

func (fs *OSSFileSystem) SetVisibility(ctx context.Context, path, visibility string) error

SetVisibility 实现storage.FileSystem接口

func (*OSSFileSystem) Size

func (fs *OSSFileSystem) Size(ctx context.Context, path string) (int64, error)

Size 实现storage.FileSystem接口

func (*OSSFileSystem) TemporaryURL

func (fs *OSSFileSystem) TemporaryURL(ctx context.Context, path string, expiration time.Duration) (string, error)

TemporaryURL 实现storage.FileSystem接口

func (*OSSFileSystem) URL

func (fs *OSSFileSystem) URL(ctx context.Context, path string) string

URL 实现storage.FileSystem接口

func (*OSSFileSystem) Visibility

func (fs *OSSFileSystem) Visibility(ctx context.Context, path string) (string, error)

Visibility 实现storage.FileSystem接口

func (*OSSFileSystem) Write

func (fs *OSSFileSystem) Write(ctx context.Context, path string, content []byte, options ...storage.WriteOption) error

Write 实现storage.FileSystem接口

func (*OSSFileSystem) WriteStream

func (fs *OSSFileSystem) WriteStream(ctx context.Context, path string, content io.Reader, options ...storage.WriteOption) error

WriteStream 实现storage.FileSystem接口

type Provider

type Provider interface {
	// RegisterCloud 注册云存储驱动
	RegisterCloud(name string, fs core.FileSystem) error

	// UnregisterCloud 注销云存储驱动
	UnregisterCloud(name string) error

	// GetCloud 获取云存储驱动
	GetCloud(name string) (core.FileSystem, error)

	// HasCloud 检查云存储驱动是否存在
	HasCloud(name string) bool

	// GetCloudNames 获取所有已注册的云存储驱动名称
	GetCloudNames() []string
}

Provider 云存储提供者接口

type S3Config

type S3Config struct {
	// Endpoint 端点URL
	Endpoint string

	// Region 区域
	Region string

	// Bucket 存储桶名称
	Bucket string

	// AccessKey 访问密钥ID
	AccessKey string

	// SecretKey 访问密钥
	SecretKey string

	// UseSSL 是否使用SSL
	UseSSL bool

	// PublicURL 公共URL前缀
	PublicURL string

	// ForcePathStyle 是否强制使用路径风格的URL
	ForcePathStyle bool

	// DefaultVisibility 默认可见性
	DefaultVisibility string

	// 是否禁用虚拟主机样式寻址
	DisableVirtualHostStyle bool
}

S3Config S3配置选项

func DefaultS3Config

func DefaultS3Config() S3Config

DefaultS3Config 返回默认S3配置

type S3File

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

S3File 表示S3上的文件

func (*S3File) Extension

func (f *S3File) Extension() string

Extension 实现storage.File接口

func (*S3File) IsDirectory

func (f *S3File) IsDirectory() bool

IsDirectory 实现storage.File接口

func (*S3File) LastModified

func (f *S3File) LastModified() time.Time

LastModified 实现storage.File接口

func (*S3File) Metadata

func (f *S3File) Metadata() map[string]interface{}

Metadata 实现storage.File接口

func (*S3File) MimeType

func (f *S3File) MimeType() string

MimeType 实现storage.File接口

func (*S3File) Name

func (f *S3File) Name() string

Name 实现storage.File接口

func (*S3File) Path

func (f *S3File) Path() string

Path 实现storage.File接口

func (*S3File) Read

func (f *S3File) Read(ctx context.Context) ([]byte, error)

Read 实现storage.File接口

func (*S3File) ReadStream

func (f *S3File) ReadStream(ctx context.Context) (io.ReadCloser, error)

ReadStream 实现storage.File接口

func (*S3File) Size

func (f *S3File) Size() int64

Size 实现storage.File接口

func (*S3File) TemporaryURL

func (f *S3File) TemporaryURL(ctx context.Context, expiration time.Duration) (string, error)

TemporaryURL 实现storage.File接口

func (*S3File) URL

func (f *S3File) URL() string

URL 实现storage.File接口

func (*S3File) Visibility

func (f *S3File) Visibility() string

Visibility 实现storage.File接口

type S3FileSystem

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

S3FileSystem 实现基于S3的文件系统

func New

func New(cfg S3Config) (*S3FileSystem, error)

New 创建新的S3文件系统

func (*S3FileSystem) AllDirectories

func (fs *S3FileSystem) AllDirectories(ctx context.Context, directory string) ([]string, error)

AllDirectories 实现storage.FileSystem接口

func (*S3FileSystem) AllFiles

func (fs *S3FileSystem) AllFiles(ctx context.Context, directory string) ([]core.File, error)

AllFiles 实现storage.FileSystem接口

func (*S3FileSystem) Checksum

func (fs *S3FileSystem) Checksum(ctx context.Context, path, algorithm string) (string, error)

Checksum 实现storage.FileSystem接口

func (*S3FileSystem) Copy

func (fs *S3FileSystem) Copy(ctx context.Context, source, destination string) error

Copy 实现storage.FileSystem接口

func (*S3FileSystem) CreateDirectory

func (fs *S3FileSystem) CreateDirectory(ctx context.Context, path string, options ...core.WriteOption) error

CreateDirectory 实现storage.FileSystem接口

func (*S3FileSystem) Delete

func (fs *S3FileSystem) Delete(ctx context.Context, path string) error

Delete 实现storage.FileSystem接口

func (*S3FileSystem) DeleteDirectory

func (fs *S3FileSystem) DeleteDirectory(ctx context.Context, path string) error

DeleteDirectory 实现storage.FileSystem接口

func (*S3FileSystem) Directories

func (fs *S3FileSystem) Directories(ctx context.Context, directory string) ([]string, error)

Directories 实现storage.FileSystem接口

func (*S3FileSystem) Exists

func (fs *S3FileSystem) Exists(ctx context.Context, path string) (bool, error)

Exists 实现storage.FileSystem接口

func (*S3FileSystem) Files

func (fs *S3FileSystem) Files(ctx context.Context, directory string) ([]core.File, error)

Files 实现storage.FileSystem接口

func (*S3FileSystem) Get

func (fs *S3FileSystem) Get(ctx context.Context, path string) (core.File, error)

Get 实现storage.FileSystem接口

func (*S3FileSystem) LastModified

func (fs *S3FileSystem) LastModified(ctx context.Context, path string) (time.Time, error)

LastModified 实现storage.FileSystem接口

func (*S3FileSystem) MimeType

func (fs *S3FileSystem) MimeType(ctx context.Context, path string) (string, error)

MimeType 实现storage.FileSystem接口

func (*S3FileSystem) Move

func (fs *S3FileSystem) Move(ctx context.Context, source, destination string) error

Move 实现storage.FileSystem接口

func (*S3FileSystem) SetVisibility

func (fs *S3FileSystem) SetVisibility(ctx context.Context, path, visibility string) error

SetVisibility 实现storage.FileSystem接口

func (*S3FileSystem) Size

func (fs *S3FileSystem) Size(ctx context.Context, path string) (int64, error)

Size 实现storage.FileSystem接口

func (*S3FileSystem) TemporaryURL

func (fs *S3FileSystem) TemporaryURL(ctx context.Context, path string, expiration time.Duration) (string, error)

TemporaryURL 实现storage.FileSystem接口

func (*S3FileSystem) URL

func (fs *S3FileSystem) URL(ctx context.Context, path string) string

URL 实现storage.FileSystem接口

func (*S3FileSystem) Visibility

func (fs *S3FileSystem) Visibility(ctx context.Context, path string) (string, error)

Visibility 实现storage.FileSystem接口

func (*S3FileSystem) Write

func (fs *S3FileSystem) Write(ctx context.Context, path string, content []byte, options ...core.WriteOption) error

Write 实现storage.FileSystem接口

func (*S3FileSystem) WriteStream

func (fs *S3FileSystem) WriteStream(ctx context.Context, path string, content io.Reader, options ...core.WriteOption) error

WriteStream 实现storage.FileSystem接口

Jump to

Keyboard shortcuts

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