kodo

package
v2.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TypeNormal = iota
	TypeLine
)

Variables

This section is empty.

Functions

func MakeBaseUrl

func MakeBaseUrl(domain, key string) (baseUrl string)

MakeBaseUrl 根据空间(Bucket)的域名,以及文件的 key,获得 baseUrl。 如果空间是 public 的,那么通过 baseUrl 可以直接下载文件内容。 如果空间是 private 的,那么需要对 baseUrl 进行私有签名得到一个临时有效的 privateUrl 进行下载。

func URIChangeMime

func URIChangeMime(bucket, key, mime string) string

func URIChangeType

func URIChangeType(bucket, key string, Type FileType) string

func URICopy

func URICopy(bucketSrc, keySrc, bucketDest, keyDest string) string

func URIDelete

func URIDelete(bucket, key string) string

func URIMove

func URIMove(bucketSrc, keySrc, bucketDest, keyDest string) string

func URIRename

func URIRename(bucketSrc, keySrc, bucketDest, keyDest string) string

func URIStat

func URIStat(bucket, key string) string

Types

type BatchItemRet

type BatchItemRet struct {
	Error string `json:"error"`
	Code  int    `json:"code"`
}

type BatchStatItemRet

type BatchStatItemRet struct {
	Data  Entry  `json:"data"`
	Error string `json:"error"`
	Code  int    `json:"code"`
}

type Bucket

type Bucket struct {
	Conn *QiniuClient
	Name string
}

func NewBucket

func NewBucket(client *QiniuClient, name string) *Bucket

NewBucket 取七牛空间(bucket)的对象实例 @param client 七牛kodo客户端 @param name bucket名称

func (Bucket) Batch

func (p Bucket) Batch(ctx context.Context, ret interface{}, op []string) (err error)

Batch 批量操作

func (Bucket) BatchCopy

func (p Bucket) BatchCopy(ctx context.Context, entries ...KeyPair) (ret []BatchItemRet, err error)

func (Bucket) BatchDelete

func (p Bucket) BatchDelete(ctx context.Context, keys ...string) (ret []BatchItemRet, err error)

func (Bucket) BatchMove

func (p Bucket) BatchMove(ctx context.Context, entries ...KeyPairEx) (ret []BatchItemRet, err error)

func (Bucket) BatchRename

func (p Bucket) BatchRename(ctx context.Context, entries ...KeyPair) (ret []BatchItemRet, err error)

BatchRename 批量重命名 该操作没有批量api,需要goroutine模拟实现

func (Bucket) BatchStat

func (p Bucket) BatchStat(ctx context.Context, keys ...string) (ret []BatchStatItemRet, err error)

func (Bucket) ChangeMime

func (p Bucket) ChangeMime(ctx context.Context, key, mime string) (err error)

ChangeMime 修改文件的MIME类型。 @param ctx 是请求的上下文。 @param key 是要修改的文件的访问路径。 @param mime 是要设置的新MIME类型。

func (Bucket) Copy

func (p Bucket) Copy(ctx context.Context, keySrc, keyDest string) (err error)

Copy 复制一个文件。 @param ctx 是请求的上下文。 @param keySrc 是要复制的文件的源路径。 @param keyDest 是要复制的文件的目标路径。

func (Bucket) Delete

func (p Bucket) Delete(ctx context.Context, key string) (err error)

Delete 删除一个文件 @param ctx 是请求的上下文 @param key 是要删除的文件的访问路径

func (Bucket) Fetch

func (p Bucket) Fetch(ctx context.Context, key string, url string) (err error)

Fetch 从网上抓取一个资源并存储到七牛空间(bucket)中 @param ctx 是请求的上下文 @param key 是要存储的文件的访问路径。如果文件已经存在则覆盖 @param url 是要抓取的资源的URL

func (Bucket) List

func (p Bucket) List(
	ctx context.Context, prefix, delimiter, marker string, limit int) (entries []ListItem, commonPrefixes []string, markerOut string, err error)

List 首次请求,请将 marker 设置为 ""。 无论 err 值如何,均应该先看 entries 是否有内容。 如果后续没有更多数据,err 返回 EOF,markerOut 返回 ""(但不通过该特征来判断是否结束)。

func (Bucket) Move

func (p Bucket) Move(ctx context.Context, keySrc, keyDest string) (err error)

Move 移动一个文件。 @param ctx 是请求的上下文。 @param keySrc 是要移动的文件的旧路径。 @param keyDest 是要移动的文件的新路径。

func (Bucket) MoveEx

func (p Bucket) MoveEx(ctx context.Context, keySrc, bucketDest, keyDest string) (err error)

MoveEx 跨空间(bucket)移动一个文件。 @param ctx 是请求的上下文。 @param keySrc 是要移动的文件的旧路径。 @param bucketDest 是文件的目标空间。 @param keyDest 是要移动的文件的新路径。

func (Bucket) Put

func (p Bucket) Put(
	ctx Context, ret interface{}, key string, data io.ReaderAt, size int64, extra *PutExtra) error

Put 上传一个文件。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。返回的是 PutRet 结构。可选,可以传 nil 表示不感兴趣。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 data 是文件内容的访问接口(io.Reader)。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 PutExtra 结构的描述。

func (Bucket) PutFile

func (p Bucket) PutFile(
	ctx Context, ret interface{}, key, localFile string, extra *PutExtra) (err error)

PutFile 上传一个文件。 和 Put 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.Reader 来访问。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。返回的是 PutRet 结构。可选,可以传 nil 表示不感兴趣。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 PutExtra 结构的描述。

func (Bucket) PutFileWithoutKey

func (p Bucket) PutFileWithoutKey(
	ctx Context, ret interface{}, localFile string, extra *PutExtra) (err error)

PutFileWithoutKey 上传一个文件。自动以文件的 hash 作为文件的访问路径(key)。 和 PutWithoutKey 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.Reader 来访问。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。返回的是 PutRet 结构。可选,可以传 nil 表示不感兴趣。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 PutExtra 结构的描述。

func (Bucket) PutWithoutKey

func (p Bucket) PutWithoutKey(
	ctx Context, ret interface{}, data io.ReaderAt, size int64, extra *PutExtra) error

PutWithoutKey 上传一个文件。自动以文件的 hash 作为文件的访问路径(key)。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。返回的是 PutRet 结构。可选,可以传 nil 表示不感兴趣。 data 是文件内容的访问接口(io.Reader)。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 PutExtra 结构的描述。

func (Bucket) Rename

func (p Bucket) Rename(ctx context.Context, keySrc, keyDest string) (err error)

Rename 重命名一个文件。 @param ctx 是请求的上下文。 @param keySrc 是要移动的文件的旧路径。 @param keyDest 是要移动的文件的新路径。

func (Bucket) Rput

func (p Bucket) Rput(
	ctx Context, ret interface{}, key string, data io.ReaderAt, size int64, extra *RputExtra) error

Rput 上传一个文件,支持断点续传和分块上传。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 data 是文件内容的访问接口。考虑到需要支持分块上传和断点续传,要的是 io.ReaderAt 接口,而不是 io.Reader。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。

func (Bucket) RputFile

func (p Bucket) RputFile(
	ctx Context, ret interface{}, key, localFile string, extra *RputExtra) (err error)

RputFile 上传一个文件,支持断点续传和分块上传。 和 Rput 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。

func (Bucket) RputFileWithoutKey

func (p Bucket) RputFileWithoutKey(
	ctx Context, ret interface{}, localFile string, extra *RputExtra) (err error)

RputFileWithoutKey 上传一个文件,支持断点续传和分块上传。自动以文件的 hash 作为文件的访问路径(key)。 和 RputWithoutKey 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。

func (Bucket) RputWithoutKey

func (p Bucket) RputWithoutKey(
	ctx Context, ret interface{}, data io.ReaderAt, size int64, extra *RputExtra) error

RputWithoutKey 上传一个文件,支持断点续传和分块上传。自动以文件的 hash 作为文件的访问路径(key)。

ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 data 是文件内容的访问接口。考虑到需要支持分块上传和断点续传,要的是 io.ReaderAt 接口,而不是 io.Reader。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。

func (Bucket) Stat

func (p Bucket) Stat(ctx context.Context, key string) (entry Entry, err error)

Stat 取文件属性 @param ctx 是请求的上下文 @param key 是要访问的文件的访问路径

type Config

type Config struct {
	AccessKey string
	SecretKey string
	RSHost    string
	RSFHost   string
	APIHost   string
	Scheme    string
	IoHost    string
	UpHosts   []string

	DialTimeout time.Duration
	RsTimeout   time.Duration
	RsfTimeout  time.Duration
	ApiTimeout  time.Duration
	IoTimeout   time.Duration
	UpTimeout   time.Duration
}

type Entry

type Entry struct {
	Hash     string `json:"hash"`
	Fsize    int64  `json:"fsize"`
	PutTime  int64  `json:"putTime"`
	MimeType string `json:"mimeType"`
	EndUser  string `json:"endUser"`
}

type FileType

type FileType = common.FileType

type GetPolicy

type GetPolicy struct {
	Expires uint32
}

type KeyPair

type KeyPair struct {
	SrcKey  string
	DestKey string
}

type KeyPairEx

type KeyPairEx struct {
	SrcKey     string
	DestKey    string
	DestBucket string
}

type ListItem

type ListItem struct {
	Key      string `json:"key"`
	Hash     string `json:"hash"`
	Fsize    int64  `json:"fsize"`
	PutTime  int64  `json:"putTime"`
	MimeType string `json:"mimeType"`
	EndUser  string `json:"endUser"`
}

type PutExtra

type PutExtra kodocli2.PutExtra

type PutPolicy

type PutPolicy = common.PutPolicy

type PutRet

type PutRet kodocli2.PutRet

type QiniuClient

type QiniuClient struct {
	rpc.Client
	Config
	// contains filtered or unexported fields
}

func NewClient

func NewClient(cfg *Config, httpTransport http.RoundTripper) *QiniuClient

func (*QiniuClient) MakePrivateUrl

func (p *QiniuClient) MakePrivateUrl(baseUrl string, policy *GetPolicy) (privateUrl string)

func (*QiniuClient) MakeUpToken

func (p *QiniuClient) MakeUpToken(policy *common.PutPolicy) string

MakeUpToken 根据给定的上传策略构造一个上传凭证

func (*QiniuClient) MakeUpTokenWithExpires

func (p *QiniuClient) MakeUpTokenWithExpires(policy *common.PutPolicy, expires uint32) string

MakeUpTokenWithExpires 根据给定的上传策略和有效时间构造一个上传凭证, 有效时间单位为秒,将与上传策略中的过期时间叠加。

type RputExtra

type RputExtra kodocli2.RputExtra

Jump to

Keyboard shortcuts

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