Documentation ¶
Overview ¶
这个文件兼容保留了原来storage暴露出去的变量,函数等
storage 包提供了资源的上传,管理,数据处理等功能。其中资源的上传又提供了表单上传的方式以及分片上传的方式,其中分片上传的方式还支持断点续传。
该包中提供了 BucketManager 用来进行资源管理,比如获取文件信息,文件复制,删除,重命名等,以及很多高级功能如修改文件类型, 修改文件的生命周期,修改文件的存储类型等。
该包中还提供了 FormUploader 和 ResumeUploader 来分别支持表单上传和分片上传,断点续传等功能,对于较大的文件,比如100MB以上的文件,一般 建议采用分片上传的方式来保证上传的效率和可靠性。
对于数据处理,则提供了 OperationManager,可以使用它来发送持久化数据处理请求,及查询数据处理的状态。
package storage 提供了用户存储配置(uc)方面的功能, 定义了UC API 的返回结构体类型
Index ¶
- Constants
- Variables
- func BlockCount(fsize int64) int
- func EncodedEntry(bucket, key string) string
- func EncodedEntryWithoutKey(bucket string) string
- func IsContextExpired(blkPut BlkputRet) bool
- func MakePrivateURL(mac *auth.Credentials, domain, key string, deadline int64) (privateURL string)
- func MakePublicURL(domain, key string) (finalUrl string)
- func ParsePutTime(putTime int64) (t time.Time)
- func SetAppName(userApp string) error
- func SetRegionCachePath(newPath string)
- func SetSettings(v *Settings)
- func URIChangeMime(bucket, key, newMime string) string
- func URIChangeType(bucket, key string, fileType int) string
- func URICopy(srcBucket, srcKey, destBucket, destKey string, force bool) string
- func URIDelete(bucket, key string) string
- func URIDeleteAfterDays(bucket, key string, days int) string
- func URIMove(srcBucket, srcKey, destBucket, destKey string, force bool) string
- func URIRestoreAr(bucket, key string, afterDay int) string
- func URIStat(bucket, key string) string
- type AsyncFetchParam
- type AsyncFetchRet
- type Base64PutExtra
- type Base64Uploader
- type BatchOpRet
- type BlkputRet
- type BucketEventRule
- type BucketInfo
- func (b *BucketInfo) BlackListSet() bool
- func (b *BucketInfo) ImageSources() (srcs []string)
- func (b *BucketInfo) IndexPageOn() bool
- func (b *BucketInfo) IsPrivate() bool
- func (b *BucketInfo) ProtectedOn() bool
- func (b *BucketInfo) Separators() (ret []rune)
- func (b *BucketInfo) TokenAntiLeechModeOn() bool
- func (b *BucketInfo) WhiteListSet() bool
- type BucketLifeCycleRule
- type BucketManager
- func (m *BucketManager) AddBucketEvent(bucket string, rule *BucketEventRule) (err error)
- func (m *BucketManager) AddBucketLifeCycleRule(bucketName string, lifeCycleRule *BucketLifeCycleRule) (err error)
- func (m *BucketManager) AddCorsRules(bucket string, corsRules []CorsRule) (err error)
- func (m *BucketManager) ApiHost(bucket string) (apiHost string, err error)
- func (m *BucketManager) ApiReqHost(bucket string) (reqHost string, err error)
- func (m *BucketManager) AsyncFetch(param AsyncFetchParam) (ret AsyncFetchRet, err error)
- func (m *BucketManager) Batch(operations []string) (batchOpRet []BatchOpRet, err error)
- func (m *BucketManager) BucketInfosInRegion(region RegionID, statistics bool) (bucketInfos []BucketSummary, err error)
- func (m *BucketManager) Buckets(shared bool) (buckets []string, err error)
- func (m *BucketManager) ChangeMime(bucket, key, newMime string) (err error)
- func (m *BucketManager) ChangeType(bucket, key string, fileType int) (err error)
- func (m *BucketManager) ClearTagging(bucket string) error
- func (m *BucketManager) Copy(srcBucket, srcKey, destBucket, destKey string, force bool) (err error)
- func (m *BucketManager) CreateBucket(bucketName string, regionID RegionID) error
- func (m *BucketManager) DelBucketEvent(bucket, ruleName string) (err error)
- func (m *BucketManager) DelBucketLifeCycleRule(bucketName, ruleName string) (err error)
- func (m *BucketManager) Delete(bucket, key string) (err error)
- func (m *BucketManager) DeleteAfterDays(bucket, key string, days int) (err error)
- func (m *BucketManager) DropBucket(bucketName string) (err error)
- func (m *BucketManager) Fetch(resURL, bucket, key string) (fetchRet FetchRet, err error)
- func (m *BucketManager) FetchWithoutKey(resURL, bucket string) (fetchRet FetchRet, err error)
- func (m *BucketManager) GetBucketEvent(bucket string) (rule []BucketEventRule, err error)
- func (m *BucketManager) GetBucketInfo(bucketName string) (bucketInfo BucketInfo, err error)
- func (m *BucketManager) GetBucketLifeCycleRule(bucketName string) (rules []BucketLifeCycleRule, err error)
- func (m *BucketManager) GetBucketQuota(bucket string) (quota BucketQuota, err error)
- func (m *BucketManager) GetCorsRules(bucket string) (corsRules []CorsRule, err error)
- func (m *BucketManager) GetTagging(bucket string) (tags map[string]string, err error)
- func (m *BucketManager) IoReqHost(bucket string) (reqHost string, err error)
- func (m *BucketManager) IovipHost(bucket string) (iovipHost string, err error)
- func (m *BucketManager) ListBucket(bucket, prefix, delimiter, marker string) (retCh chan listFilesRet2, err error)
- func (m *BucketManager) ListBucketContext(ctx context.Context, bucket, prefix, delimiter, marker string) (retCh chan listFilesRet2, err error)
- func (m *BucketManager) ListBucketDomains(bucket string) (info []DomainInfo, err error)
- func (m *BucketManager) ListFiles(bucket, prefix, delimiter, marker string, limit int) (entries []ListItem, commonPrefixes []string, nextMarker string, hasNext bool, ...)
- func (m *BucketManager) MakeBucketPrivate(bucket string) error
- func (m *BucketManager) MakeBucketPublic(bucket string) error
- func (m *BucketManager) Move(srcBucket, srcKey, destBucket, destKey string, force bool) (err error)
- func (m *BucketManager) Prefetch(bucket, key string) (err error)
- func (m *BucketManager) RestoreAr(bucket, key string, freezeAfterDays int) (err error)
- func (m *BucketManager) RsHost(bucket string) (rsHost string, err error)
- func (m *BucketManager) RsReqHost(bucket string) (reqHost string, err error)
- func (m *BucketManager) RsfHost(bucket string) (rsfHost string, err error)
- func (m *BucketManager) RsfReqHost(bucket string) (reqHost string, err error)
- func (m *BucketManager) SetBucketAccessMode(bucket string, mode int) error
- func (m *BucketManager) SetBucketAccessStyle(bucket string, mode int) error
- func (m *BucketManager) SetBucketMaxAge(bucket string, maxAge int64) error
- func (m *BucketManager) SetBucketQuota(bucket string, size, count int64) (err error)
- func (m *BucketManager) SetImage(siteURL, bucket string) (err error)
- func (m *BucketManager) SetImageWithHost(siteURL, bucket, host string) (err error)
- func (m *BucketManager) SetReferAntiLeechMode(bucketName string, refererAntiLeechConfig *ReferAntiLeechConfig) (err error)
- func (m *BucketManager) SetTagging(bucket string, tags map[string]string) error
- func (m *BucketManager) Stat(bucket, key string) (info FileInfo, err error)
- func (m *BucketManager) TurnOffBucketProtected(bucket string) error
- func (m *BucketManager) TurnOffIndexPage(bucket string) error
- func (m *BucketManager) TurnOnBucketProtected(bucket string) error
- func (m *BucketManager) TurnOnIndexPage(bucket string) error
- func (m *BucketManager) UnsetImage(bucket string) (err error)
- func (m *BucketManager) UpdateBucketEnvent(bucket string, rule *BucketEventRule) (err error)
- func (m *BucketManager) UpdateBucketLifeCycleRule(bucketName string, rule *BucketLifeCycleRule) (err error)
- func (m *BucketManager) UpdateObjectStatus(bucketName string, key string, enable bool) error
- func (m *BucketManager) Zone(bucket string) (z *Zone, err error)
- type BucketQuota
- type BucketSummary
- type BucketTag
- type BucketTagging
- type Chunk
- type ChunkPutRetryer
- type Client
- type Config
- type CorsRule
- type DomainInfo
- type ErrorInfo
- type FetchRet
- type FileInfo
- type FileRecorder
- func (fileRecorder *FileRecorder) Delete(key string) error
- func (fileRecorder *FileRecorder) GenerateRecorderKey(keyInfos []string, sourceFileInfo os.FileInfo) string
- func (fileRecorder *FileRecorder) Get(key string) ([]byte, error)
- func (fileRecorder *FileRecorder) Set(key string, data []byte) error
- type FopResult
- type FormUploader
- func (p *FormUploader) Put(ctx context.Context, ret interface{}, uptoken, key string, data io.Reader, ...) (err error)
- func (p *FormUploader) PutFile(ctx context.Context, ret interface{}, uptoken, key, localFile string, ...) (err error)
- func (p *FormUploader) PutFileWithoutKey(ctx context.Context, ret interface{}, uptoken, localFile string, ...) (err error)
- func (p *FormUploader) PutWithoutKey(ctx context.Context, ret interface{}, uptoken string, data io.Reader, ...) (err error)
- func (p *FormUploader) UpHost(ak, bucket string) (upHost string, err error)
- type InitPartsRet
- type ListItem
- type OperationManager
- func (m *OperationManager) ApiHost(bucket string) (apiHost string, err error)
- func (m *OperationManager) Pfop(bucket, key, fops, pipeline, notifyURL string, force bool) (persistentID string, err error)
- func (m *OperationManager) Prefop(persistentID string) (ret PrefopRet, err error)
- func (m *OperationManager) PrefopApiHost(persistentID string) (apiHost string)
- type PfopRet
- type PrefopRet
- type PutExtra
- type PutPolicy
- type PutRet
- type Recorder
- type ReferAntiLeechConfig
- func (r *ReferAntiLeechConfig) AddDomainPattern(pattern string) *ReferAntiLeechConfig
- func (r *ReferAntiLeechConfig) AsQueryString() string
- func (r *ReferAntiLeechConfig) SetEmptyReferer(enable bool) *ReferAntiLeechConfig
- func (r *ReferAntiLeechConfig) SetEnableSource(enable bool) *ReferAntiLeechConfig
- func (r *ReferAntiLeechConfig) SetMode(mode int) *ReferAntiLeechConfig
- func (r *ReferAntiLeechConfig) SetPattern(pattern string) *ReferAntiLeechConfig
- type Region
- type RegionID
- type RegionInfo
- type ResumeUploader
- func (p *ResumeUploader) Bput(ctx context.Context, upToken string, ret *BlkputRet, body io.Reader, size int) error
- func (p *ResumeUploader) Mkblk(ctx context.Context, upToken string, upHost string, ret *BlkputRet, ...) error
- func (p *ResumeUploader) Mkfile(ctx context.Context, upToken string, upHost string, ret interface{}, ...) (err error)
- func (p *ResumeUploader) Put(ctx context.Context, ret interface{}, upToken string, key string, ...) error
- func (p *ResumeUploader) PutFile(ctx context.Context, ret interface{}, upToken, key, localFile string, ...) error
- func (p *ResumeUploader) PutFileWithoutKey(ctx context.Context, ret interface{}, upToken, localFile string, ...) error
- func (p *ResumeUploader) PutWithoutKey(ctx context.Context, ret interface{}, upToken string, f io.ReaderAt, ...) error
- func (p *ResumeUploader) PutWithoutSize(ctx context.Context, ret interface{}, upToken, key string, r io.Reader, ...) error
- func (p *ResumeUploader) UpHost(ak, bucket string) (upHost string, err error)
- type ResumeUploaderV2
- func (p *ResumeUploaderV2) CompleteParts(ctx context.Context, upToken, upHost string, ret interface{}, ...) (err error)
- func (p *ResumeUploaderV2) InitParts(ctx context.Context, upToken, upHost, bucket, key string, hasKey bool, ...) error
- func (p *ResumeUploaderV2) Put(ctx context.Context, ret interface{}, upToken string, key string, ...) error
- func (p *ResumeUploaderV2) PutFile(ctx context.Context, ret interface{}, upToken, key, localFile string, ...) error
- func (p *ResumeUploaderV2) PutFileWithoutKey(ctx context.Context, ret interface{}, upToken, localFile string, ...) error
- func (p *ResumeUploaderV2) PutWithoutKey(ctx context.Context, ret interface{}, upToken string, f io.ReaderAt, ...) error
- func (p *ResumeUploaderV2) PutWithoutSize(ctx context.Context, ret interface{}, upToken, key string, r io.Reader, ...) error
- func (p *ResumeUploaderV2) UpHost(ak, bucket string) (upHost string, err error)
- func (p *ResumeUploaderV2) UploadParts(ctx context.Context, upToken, upHost, bucket, key string, hasKey bool, ...) error
- type RputExtra
- type RputV2Extra
- type Settings
- type UcQueryRet
- type UcQueryUp
- type UploadPartsRet
- type Zone
Constants ¶
const ( DefaultRsHost = "rs.qiniu.com" DefaultRsfHost = "rsf.qiniu.com" DefaultAPIHost = "api.qiniu.com" DefaultPubHost = "pu.qbox.me:10200" )
资源管理相关的默认域名
const ( // region code RIDHuadong = RegionID("z0") RIDHuabei = RegionID("z1") RIDHuanan = RegionID("z2") RIDNorthAmerica = RegionID("na0") RIDSingapore = RegionID("as0") RIDFogCnEast1 = RegionID("fog-cn-east-1") )
const ( // 获取下一个分片Reader失败 ErrNextReader = "ErrNextReader" // 超过了最大的重试上传次数 ErrMaxUpRetry = "ErrMaxUpRetry" )
const ( // 上传一个分片失败 ErrUploadChunkFailed = "ErrUploadChunkFailed" // 取消了分片的上传 ErrChunkUpCanceled = "ErrChunkUpCanceled" )
const (
InvalidCtx = 701 // UP: 无效的上下文(bput),可能情况:Ctx非法或者已经被淘汰(太久未使用)
)
上传进度过期错误
const UcHost = "https://uc.qbox.me"
UcHost 为查询空间相关域名的API服务地址
Variables ¶
var ( // ErrBucketNotExist 用户存储空间不存在 ErrBucketNotExist = errors.New("bucket not exist") // ErrNoSuchFile 文件已经存在 ErrNoSuchFile = errors.New("No such file or directory") )
var ( ErrInvalidPutProgress = errors.New("invalid put progress") ErrPutFailed = errors.New("resumable put failed") ErrBadToken = errors.New("invalid token") )
分片上传过程中可能遇到的错误
var (
// 华东机房
// 兼容保留
ZoneHuadong, _ = GetRegionByID(RIDHuadong)
// 华北机房
// 兼容保留
ZoneHuabei, _ = GetRegionByID(RIDHuabei)
// 华南机房
// 兼容保留
ZoneHuanan, _ = GetRegionByID(RIDHuanan)
// 北美机房
// 兼容保留
ZoneBeimei, _ = GetRegionByID(RIDNorthAmerica)
// 新加坡机房
// 兼容保留
ZoneXinjiapo, _ = GetRegionByID(RIDSingapore)
// 雾存储华东机房
// 兼容保留
ZoneFogCnEast1, _ = GetRegionByID(RIDFogCnEast1)
// 兼容保留
Zone_z0 = ZoneHuadong
// 兼容保留
Zone_z1 = ZoneHuabei
// 兼容保留
Zone_z2 = ZoneHuanan
// 兼容保留
Zone_na0 = ZoneBeimei
// 兼容保留
Zone_as0 = ZoneXinjiapo
// 兼容保留
Zone_fog_cn_east_1 = ZoneFogCnEast1
)
var CallRet = client.CallRet
var DefaultClient = client.DefaultClient
var ErrUnmatchedChecksum = errors.New("unmatched checksum")
分片上传过程中可能遇到的错误
var ResponseError = client.ResponseError
var UserAgent = client.UserAgent
Functions ¶
func EncodedEntry ¶
EncodedEntry 生成URL Safe Base64编码的 Entry
func EncodedEntryWithoutKey ¶
EncodedEntryWithoutKey 生成 key 为null的情况下 URL Safe Base64编码的Entry
func IsContextExpired ¶
IsContextExpired 检查分片上传的ctx是否过期,提前一天让它过期 因为我们认为如果断点继续上传的话,最长需要1天时间
func MakePrivateURL ¶
func MakePrivateURL(mac *auth.Credentials, domain, key string, deadline int64) (privateURL string)
MakePrivateURL 用来生成私有空间资源下载链接
func MakePublicURL ¶
MakePublicURL 用来生成公开空间资源下载链接
func ParsePutTime ¶
ParsePutTime 提供了将PutTime转换为 time.Time 的功能
func SetRegionCachePath ¶ added in v7.8.1
func SetRegionCachePath(newPath string)
func URIChangeMime ¶
URIChangeMime 构建 chgm 接口的请求命令
func URIChangeType ¶
URIChangeType 构建 chtype 接口的请求命令
func URIDeleteAfterDays ¶
URIDeleteAfterDays 构建 deleteAfterDays 接口的请求命令
func URIRestoreAr ¶
URIRestoreAr 构建 restoreAr 接口的请求命令
Types ¶
type AsyncFetchParam ¶
type AsyncFetchParam struct { Url string `json:"url"` Host string `json:"host,omitempty"` Bucket string `json:"bucket"` Key string `json:"key,omitempty"` Md5 string `json:"md5,omitempty"` Etag string `json:"etag,omitempty"` CallbackURL string `json:"callbackurl,omitempty"` CallbackBody string `json:"callbackbody,omitempty"` CallbackBodyType string `json:"callbackbodytype,omitempty"` FileType int `json:"file_type,omitempty"` }
type AsyncFetchRet ¶
type Base64PutExtra ¶
type Base64PutExtra struct { // 可选,用户自定义参数,必须以 "x:" 开头。若不以x:开头,则忽略。 Params map[string]string // 可选,当为 "" 时候,服务端自动判断。 MimeType string }
Base64PutExtra 为Base64上传的额外可选项
type Base64Uploader ¶
type Base64Uploader struct {
// contains filtered or unexported fields
}
Base64Uploader 表示一个Base64上传对象
func NewBase64Uploader ¶
func NewBase64Uploader(cfg *Config) *Base64Uploader
NewBase64Uploader 用来构建一个Base64上传的对象
func NewBase64UploaderEx ¶
func NewBase64UploaderEx(cfg *Config, clt *client.Client) *Base64Uploader
NewBase64UploaderEx 用来构建一个Base64上传的对象
func (*Base64Uploader) Put ¶
func (p *Base64Uploader) Put( ctx context.Context, ret interface{}, uptoken, key string, base64Data []byte, extra *Base64PutExtra) (err error)
Put 用来以Base64方式上传一个文件
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 callbackUrl 或 returnBody,那么返回的数据结构是 PutRet 结构。 uptoken 是由业务服务器颁发的上传凭证。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 base64Data 是要上传的Base64数据,一般为图片数据的Base64编码字符串 extra 是上传的一些可选项,可以指定为nil。详细见 Base64PutExtra 结构的描述。
func (*Base64Uploader) PutWithoutKey ¶
func (p *Base64Uploader) PutWithoutKey( ctx context.Context, ret interface{}, uptoken string, base64Data []byte, extra *Base64PutExtra) (err error)
PutWithoutKey 用来以Base64方式上传一个文件,保存的文件名以文件的内容hash作为文件名
type BatchOpRet ¶
type BatchOpRet struct { Code int `json:"code,omitempty"` Data struct { Hash string `json:"hash"` Fsize int64 `json:"fsize"` PutTime int64 `json:"putTime"` MimeType string `json:"mimeType"` Type int `json:"type"` Error string `json:"error"` } `json:"data,omitempty"` }
BatchOpRet 为批量执行操作的返回值 批量操作支持 stat,copy,delete,move,chgm,chtype,deleteAfterDays几个操作 其中 stat 为获取文件的基本信息,如果文件存在则返回基本信息,如果文件不存在返回 error 。 其他的操作,如果成功,则返回 code,不成功会同时返回 error 信息,可以根据 error 信息来判断问题所在。
type BlkputRet ¶
type BlkputRet struct { Ctx string `json:"ctx"` Checksum string `json:"checksum"` Crc32 uint32 `json:"crc32"` Offset uint32 `json:"offset"` Host string `json:"host"` ExpiredAt int64 `json:"expired_at"` // contains filtered or unexported fields }
BlkputRet 表示分片上传每个片上传完毕的返回值
type BucketEventRule ¶
type BucketEventRule struct { // 规则名字 Name string `json:"name"` // 匹配文件前缀 Prefix string `json:"prefix"` // 匹配文件后缀 Suffix string `json:"suffix"` // 事件类型 // put,mkfile,delete,copy,move,append,disable,enable,deleteMarkerCreate Event []string `json:"event"` // 回调通知地址, 可以指定多个 CallbackURL []string `json:"callback_urls` // 用户的AccessKey, 可选, 设置的话会对通知请求用对应的ak、sk进行签名 AccessKey string `json:"access_key"` // 回调通知的请求HOST, 可选 Host string `json:"host"` }
BucketEnvent 定义了存储空间发生事件时候的通知规则 比如调用了存储的"delete"删除接口删除文件, 这个是一个事件; 当这个事件发生的时候, 我们要对哪些文件,做什么处理,是否要作回调, 都可以通过这个结构体配置
type BucketInfo ¶
type BucketInfo struct { // 镜像回源地址, 接口返回的多个地址以;分割 Source string `json:"source"` // 镜像回源的时候请求头中的HOST Host string `json:"host"` // 镜像回源地址过期时间(秒数), 现在这个功能没有实现,因此这个字段现在是没有意义的 Expires int `json:"expires"` // 是否开启了原图保护 Protected int `json:"protected"` // 是否是私有空间 Private int `json:"private"` // 如果NoIndexPage是false表示开启了空间根目录index.html // 如果是true, 表示没有开启 // 开启了根目录下的index.html, 文件将会被作为默认首页展示 NoIndexPage int `json:"no_index_page"` // 在规定的时效内使客户端缓存更新的效果 MaxAge int `json:"max_age"` // 图片样式分隔符, 接口返回的可能有多个 Separator string `json:"separator"` // 图片样式, map中的key表示图片样式命令名字 // map中的value表示图片样式命令的内容 Styles map[string]string `json:"styles"` // 防盗链模式 // 1 - 表示设置了防盗链的referer白名单 // 2 - 表示设置了防盗链的referer黑名单 AntiLeechMode int `json:"anti_leech_mode"` // 使用token签名进行防盗链 // 0 - 表示关闭 // 1 - 表示开启 TokenAntiLeechMode int `json:"token_anti_leech"` // 防盗链referer白名单列表 ReferWl []string `json:"refer_wl"` // 防盗链referer黑名单列表 ReferBl []string `json:"refer_bl"` // 在源站支持的情况下开启源站的Referer防盗链 EnableSource bool `json:"source_enabled"` // 是否允许空的referer访问 NoRefer bool `json:"no_refer"` // 用于防盗链token的生成 MacKey string `json:"mac_key"` // 用于防盗链token的生成 MacKey2 string `json:"mac_key2"` // 存储区域, 兼容保留 Zone string // 存储区域 Region string }
BucketInfo 存储空间的详细信息
func (*BucketInfo) ImageSources ¶
func (b *BucketInfo) ImageSources() (srcs []string)
ImageSources 返回多个镜像回源地址的列表
func (*BucketInfo) IndexPageOn ¶
func (b *BucketInfo) IndexPageOn() bool
IndexPageOn 返回空间是否开启了根目录下的index.html
func (*BucketInfo) IsPrivate ¶
func (b *BucketInfo) IsPrivate() bool
IsPrivate 返回布尔值 如果是私有空间, 返回 true, 否则返回false
func (*BucketInfo) ProtectedOn ¶
func (b *BucketInfo) ProtectedOn() bool
ProtectedOn 返回true or false 如果开启了原图保护,返回true, 否则false
func (*BucketInfo) TokenAntiLeechModeOn ¶
func (b *BucketInfo) TokenAntiLeechModeOn() bool
TokenAntiLeechModeOn 返回是否使用token签名防盗链开启了
type BucketLifeCycleRule ¶
type BucketLifeCycleRule struct { // 规则名称, 在设置的bucket中规则名称需要是唯一的 // 同时长度小于50, 不能为空 // 由字母,数字和下划线组成 Name string `json:"name"` // 以该前缀开头的文件应用此规则 Prefix string `json:"prefix"` // 指定存储空间内的文件多少天后删除 // 0 - 不删除 // > 0 表示多少天后删除 DeleteAfterDays int `json:"delete_after_days"` // 在多少天后转低频存储 // 0 - 表示不转低频 // < 0 表示上传的文件立即使用低频存储 // > 0 表示转低频的天数 ToLineAfterDays int `json:"to_line_after_days"` }
BucketLifeCycleRule 定义了关于七牛存储空间关于生命周期的一些配置,规则。 比如存储空间中文件可以设置多少天后删除,多少天后转低频存储等等
type BucketManager ¶
type BucketManager struct { Client *client.Client Mac *auth.Credentials Cfg *Config }
BucketManager 提供了对资源进行管理的操作
func NewBucketManager ¶
func NewBucketManager(mac *auth.Credentials, cfg *Config) *BucketManager
NewBucketManager 用来构建一个新的资源管理对象
func NewBucketManagerEx ¶
func NewBucketManagerEx(mac *auth.Credentials, cfg *Config, clt *client.Client) *BucketManager
NewBucketManagerEx 用来构建一个新的资源管理对象
func (*BucketManager) AddBucketEvent ¶
func (m *BucketManager) AddBucketEvent(bucket string, rule *BucketEventRule) (err error)
AddBucketEvent 增加存储空间事件通知规则
func (*BucketManager) AddBucketLifeCycleRule ¶
func (m *BucketManager) AddBucketLifeCycleRule(bucketName string, lifeCycleRule *BucketLifeCycleRule) (err error)
SetBucketLifeCycleRule 设置存储空间内文件的生命周期规则
func (*BucketManager) AddCorsRules ¶
func (m *BucketManager) AddCorsRules(bucket string, corsRules []CorsRule) (err error)
AddCorsRules 设置指定存储空间的跨域规则
func (*BucketManager) ApiHost ¶
func (m *BucketManager) ApiHost(bucket string) (apiHost string, err error)
func (*BucketManager) ApiReqHost ¶
func (m *BucketManager) ApiReqHost(bucket string) (reqHost string, err error)
func (*BucketManager) AsyncFetch ¶
func (m *BucketManager) AsyncFetch(param AsyncFetchParam) (ret AsyncFetchRet, err error)
func (*BucketManager) Batch ¶
func (m *BucketManager) Batch(operations []string) (batchOpRet []BatchOpRet, err error)
Batch 接口提供了资源管理的批量操作,支持 stat,copy,move,delete,chgm,chtype,deleteAfterDays几个接口
func (*BucketManager) BucketInfosInRegion ¶
func (m *BucketManager) BucketInfosInRegion(region RegionID, statistics bool) (bucketInfos []BucketSummary, err error)
BucketInfosForRegion 获取指定区域的该用户的所有bucketInfo信息
func (*BucketManager) Buckets ¶
func (m *BucketManager) Buckets(shared bool) (buckets []string, err error)
Buckets 用来获取空间列表,如果指定了 shared 参数为 true,那么一同列表被授权访问的空间
func (*BucketManager) ChangeMime ¶
func (m *BucketManager) ChangeMime(bucket, key, newMime string) (err error)
ChangeMime 用来更新文件的MimeType
func (*BucketManager) ChangeType ¶
func (m *BucketManager) ChangeType(bucket, key string, fileType int) (err error)
ChangeType 用来更新文件的存储类型,0 表示普通存储,1 表示低频存储,2 表示归档存储
func (*BucketManager) ClearTagging ¶
func (m *BucketManager) ClearTagging(bucket string) error
ClearTagging 清空 Bucket 标签
func (*BucketManager) Copy ¶
func (m *BucketManager) Copy(srcBucket, srcKey, destBucket, destKey string, force bool) (err error)
Copy 用来创建已有空间中的文件的一个新的副本
func (*BucketManager) CreateBucket ¶
func (m *BucketManager) CreateBucket(bucketName string, regionID RegionID) error
CreateBucket 创建一个七牛存储空间
func (*BucketManager) DelBucketEvent ¶
func (m *BucketManager) DelBucketEvent(bucket, ruleName string) (err error)
DelBucketEvent 删除指定存储空间的通知事件规则
func (*BucketManager) DelBucketLifeCycleRule ¶
func (m *BucketManager) DelBucketLifeCycleRule(bucketName, ruleName string) (err error)
DelBucketLifeCycleRule 删除特定存储空间上设定的规则
func (*BucketManager) Delete ¶
func (m *BucketManager) Delete(bucket, key string) (err error)
Delete 用来删除空间中的一个文件
func (*BucketManager) DeleteAfterDays ¶
func (m *BucketManager) DeleteAfterDays(bucket, key string, days int) (err error)
DeleteAfterDays 用来更新文件生命周期,如果 days 设置为0,则表示取消文件的定期删除功能,永久存储
func (*BucketManager) DropBucket ¶
func (m *BucketManager) DropBucket(bucketName string) (err error)
DropBucket 删除七牛存储空间
func (*BucketManager) Fetch ¶
func (m *BucketManager) Fetch(resURL, bucket, key string) (fetchRet FetchRet, err error)
Fetch 根据提供的远程资源链接来抓取一个文件到空间并已指定文件名保存
func (*BucketManager) FetchWithoutKey ¶
func (m *BucketManager) FetchWithoutKey(resURL, bucket string) (fetchRet FetchRet, err error)
FetchWithoutKey 根据提供的远程资源链接来抓取一个文件到空间并以文件的内容hash作为文件名
func (*BucketManager) GetBucketEvent ¶
func (m *BucketManager) GetBucketEvent(bucket string) (rule []BucketEventRule, err error)
GetBucketEvent 获取指定存储空间的事件通知规则
func (*BucketManager) GetBucketInfo ¶
func (m *BucketManager) GetBucketInfo(bucketName string) (bucketInfo BucketInfo, err error)
GetBucketInfo 返回BucketInfo结构
func (*BucketManager) GetBucketLifeCycleRule ¶
func (m *BucketManager) GetBucketLifeCycleRule(bucketName string) (rules []BucketLifeCycleRule, err error)
GetBucketLifeCycleRule 获取指定空间上设置的生命周期规则
func (*BucketManager) GetBucketQuota ¶
func (m *BucketManager) GetBucketQuota(bucket string) (quota BucketQuota, err error)
GetBucketQuota 获取存储空间的配额信息
func (*BucketManager) GetCorsRules ¶
func (m *BucketManager) GetCorsRules(bucket string) (corsRules []CorsRule, err error)
GetCorsRules 获取指定存储空间的跨域规则
func (*BucketManager) GetTagging ¶
func (m *BucketManager) GetTagging(bucket string) (tags map[string]string, err error)
GetTagging 获取 Bucket 标签
func (*BucketManager) IoReqHost ¶
func (m *BucketManager) IoReqHost(bucket string) (reqHost string, err error)
func (*BucketManager) IovipHost ¶
func (m *BucketManager) IovipHost(bucket string) (iovipHost string, err error)
func (*BucketManager) ListBucket ¶
func (m *BucketManager) ListBucket(bucket, prefix, delimiter, marker string) (retCh chan listFilesRet2, err error)
ListBucket 用来获取空间文件列表,可以根据需要指定文件的前缀 prefix,文件的目录 delimiter,流式返回每条数据。
func (*BucketManager) ListBucketContext ¶
func (m *BucketManager) ListBucketContext(ctx context.Context, bucket, prefix, delimiter, marker string) (retCh chan listFilesRet2, err error)
ListBucketContext 用来获取空间文件列表,可以根据需要指定文件的前缀 prefix,文件的目录 delimiter,流式返回每条数据。 接受的context可以用来取消列举操作
func (*BucketManager) ListBucketDomains ¶
func (m *BucketManager) ListBucketDomains(bucket string) (info []DomainInfo, err error)
ListBucketDomains 返回绑定在存储空间中的域名信息
func (*BucketManager) ListFiles ¶
func (m *BucketManager) ListFiles(bucket, prefix, delimiter, marker string, limit int) (entries []ListItem, commonPrefixes []string, nextMarker string, hasNext bool, err error)
ListFiles 用来获取空间文件列表,可以根据需要指定文件的前缀 prefix,文件的目录 delimiter,循环列举的时候下次 列举的位置 marker,以及每次返回的文件的最大数量limit,其中limit最大为1000。
func (*BucketManager) MakeBucketPrivate ¶
func (m *BucketManager) MakeBucketPrivate(bucket string) error
MakeBucketPrivate 设置空间为私有空间
func (*BucketManager) MakeBucketPublic ¶
func (m *BucketManager) MakeBucketPublic(bucket string) error
MakeBucketPublic 设置空间为公有空间
func (*BucketManager) Move ¶
func (m *BucketManager) Move(srcBucket, srcKey, destBucket, destKey string, force bool) (err error)
Move 用来将空间中的一个文件移动到新的空间或者重命名
func (*BucketManager) Prefetch ¶
func (m *BucketManager) Prefetch(bucket, key string) (err error)
Prefetch 用来同步镜像空间的资源和镜像源资源内容
func (*BucketManager) RestoreAr ¶
func (m *BucketManager) RestoreAr(bucket, key string, freezeAfterDays int) (err error)
RestoreAr 解冻归档存储类型的文件,可设置解冻有效期1~7天, 完成解冻任务通常需要1~5分钟
func (*BucketManager) RsHost ¶
func (m *BucketManager) RsHost(bucket string) (rsHost string, err error)
func (*BucketManager) RsReqHost ¶
func (m *BucketManager) RsReqHost(bucket string) (reqHost string, err error)
func (*BucketManager) RsfHost ¶
func (m *BucketManager) RsfHost(bucket string) (rsfHost string, err error)
func (*BucketManager) RsfReqHost ¶
func (m *BucketManager) RsfReqHost(bucket string) (reqHost string, err error)
func (*BucketManager) SetBucketAccessMode ¶
func (m *BucketManager) SetBucketAccessMode(bucket string, mode int) error
mode - 1 表示设置空间为私有空间, 私有空间访问需要鉴权 mode - 0 表示设置空间为公开空间
func (*BucketManager) SetBucketAccessStyle ¶
func (m *BucketManager) SetBucketAccessStyle(bucket string, mode int) error
SetBucketAccessStyle 可以用来开启或关闭制定存储空间的原图保护 mode - 1 ==> 开启原图保护 mode - 0 ==> 关闭原图保护
func (*BucketManager) SetBucketMaxAge ¶
func (m *BucketManager) SetBucketMaxAge(bucket string, maxAge int64) error
SetBucketMaxAge 设置指定存储空间的MaxAge响应头 maxAge <= 0时,表示使用默认值31536000
func (*BucketManager) SetBucketQuota ¶
func (m *BucketManager) SetBucketQuota(bucket string, size, count int64) (err error)
SetBucketQuota 设置存储空间的配额限制 配额限制主要是两块, 空间存储量的限制和空间文件数限制
func (*BucketManager) SetImage ¶
func (m *BucketManager) SetImage(siteURL, bucket string) (err error)
SetImage 用来设置空间镜像源
func (*BucketManager) SetImageWithHost ¶
func (m *BucketManager) SetImageWithHost(siteURL, bucket, host string) (err error)
SetImageWithHost 用来设置空间镜像源,额外添加回源Host头部
func (*BucketManager) SetReferAntiLeechMode ¶
func (m *BucketManager) SetReferAntiLeechMode(bucketName string, refererAntiLeechConfig *ReferAntiLeechConfig) (err error)
SetReferAntiLeechMode 配置存储空间referer防盗链模式
func (*BucketManager) SetTagging ¶
func (m *BucketManager) SetTagging(bucket string, tags map[string]string) error
该方法为覆盖所有 Bucket 上之前设置的标签,标签 Key 最大 64 字节,Value 最大 128 字节,均不能为空,且区分大小写 Key 不能以 kodo 为前缀,Key 和 Value 的字符只能为:字母,数字,空格,+,-,=,.,_,:,/,@,不能支持中文
func (*BucketManager) Stat ¶
func (m *BucketManager) Stat(bucket, key string) (info FileInfo, err error)
Stat 用来获取一个文件的基本信息
func (*BucketManager) TurnOffBucketProtected ¶
func (m *BucketManager) TurnOffBucketProtected(bucket string) error
TurnOffBucketProtected 关闭指定空间的原图保护
func (*BucketManager) TurnOffIndexPage ¶
func (m *BucketManager) TurnOffIndexPage(bucket string) error
TurnOnIndexPage 关闭默认首页
func (*BucketManager) TurnOnBucketProtected ¶
func (m *BucketManager) TurnOnBucketProtected(bucket string) error
TurnOffBucketProtected 开启指定存储空间的原图保护
func (*BucketManager) TurnOnIndexPage ¶
func (m *BucketManager) TurnOnIndexPage(bucket string) error
TurnOnIndexPage 设置默认首页
func (*BucketManager) UnsetImage ¶
func (m *BucketManager) UnsetImage(bucket string) (err error)
UnsetImage 用来取消空间镜像源设置
func (*BucketManager) UpdateBucketEnvent ¶
func (m *BucketManager) UpdateBucketEnvent(bucket string, rule *BucketEventRule) (err error)
UpdateBucketEnvent 更新指定存储空间的事件通知规则
func (*BucketManager) UpdateBucketLifeCycleRule ¶
func (m *BucketManager) UpdateBucketLifeCycleRule(bucketName string, rule *BucketLifeCycleRule) (err error)
UpdateBucketLifeCycleRule 更新特定存储空间上的生命周期规则
func (*BucketManager) UpdateObjectStatus ¶
func (m *BucketManager) UpdateObjectStatus(bucketName string, key string, enable bool) error
请求包:
POST /chstatus/<EncodedEntry>/status/<status> status:0表示启用,1表示禁用 返回包(JSON):
200 OK 当<EncodedEntryURI>解析失败,返回400 Bad Request {"error":"invalid argument"} 当<EncodedEntryURI>不符合UTF-8编码,返回400 Bad Request {"error":"key must be utf8 encoding"} 当文件不存在时,返回612 status code 612 {"error":"no such file or directory"} 当文件当前状态和设置的状态已经一致,返回400 {"error":"already enabled"}或400 {"error":"already disabled"}
type BucketQuota ¶
BucketQuota 七牛存储空间的配额信息
type BucketSummary ¶
type BucketSummary struct { // 存储空间名字 Name string `json:"name"` Info BucketInfo `json:"info"` }
BucketSummary 存储空间信息
type BucketTagging ¶
type BucketTagging struct {
Tags []BucketTag `json:"Tags"`
}
BucketTagging 为 Bucket 设置标签
type Chunk ¶
type Chunk struct { // 要上传的块数据 Body io.ReadSeeker // 该片数据所属的块的大小 BlkSize int // 将大的数据切成4M一块,每个块都有一个index // 该片数据所属的块的index Index int // 上传该片发生的错误 Err error // 是否调用了mkblk接口在后台创建了该片所属的块 Created bool // 上传块的返回值 Ret *BlkputRet }
Chunk表示要上传的数据块, 该片的大小不能大于4M 上传块的过程: 1. 调用接口在七牛后端创建块 2. 上传数据到该块 详细可以参考 https://developer.qiniu.com/kodo/api/1286/mkblk
type ChunkPutRetryer ¶
type ChunkPutRetryer interface {
Retry(ck *Chunk)
}
ChunkPutRetryer 上传分片失败时候重试接口
type Config ¶
type Config struct { //兼容保留 Zone *Region //空间所在的存储区域 Region *Region // 如果设置的Host本身是以http://开头的,又设置了该字段为true,那么优先使用该字段,使用https协议 // 同理如果该字段为false, 但是设置的host以https开头,那么使用http协议通信 UseHTTPS bool //是否使用https域名 UseCdnDomains bool //是否使用cdn加速域名 CentralRsHost string //中心机房的RsHost,用于list bucket // 兼容保留 RsHost string RsfHost string UpHost string ApiHost string IoHost string }
Config 为文件上传,资源管理等配置
func (*Config) ApiReqHost ¶
获取apiHost 优先使用Zone中的Host信息,如果Zone中的host信息没有配置,那么使用Config中的Host信息
func (*Config) GetRegion ¶
GetRegion返回一个Region指针 默认返回最新的Region, 如果该字段没有,那么返回兼容保留的Zone, 如果都为nil, 就返回nil
func (*Config) RsfReqHost ¶
获取rsfHost 优先使用Zone中的Host信息,如果Zone中的host信息没有配置,那么使用Config中的Host信息
type CorsRule ¶
type CorsRule struct { // allowed_orgin: 允许的域名。必填;支持通配符*;*表示全部匹配;只有第一个*生效;需要设置"Scheme";大小写敏感。例如 // 规则:http://*.abc.*.com 请求:"http://test.abc.test.com" 结果:不通过 // 规则:"http://abc.com" 请求:"https://abc.com"/"abc.com" 结果:不通过 // 规则:"abc.com" 请求:"http://abc.com" 结果:不通过 AllowedOrigin []string `json:"allowed_origin"` // allowed_method: 允许的方法。必填;不支持通配符;大小写不敏感; AllowedMethod []string `json:"allowed_method"` // allowed_header: 允许的header。选填;支持通配符*,但只能是单独的*,表示允许全部header,其他*不生效;空则不允许任何header;大小写不敏感; AllowedHeader []string `json:"allowed_header"` // 暴露的header。选填;不支持通配符;X-Log, X-Reqid是默认会暴露的两个header;其他的header如果没有设置,则不会暴露;大小写不敏感; ExposedHeader []string `json:"exposed_header"` // max_age: 结果可以缓存的时间。选填;空则不缓存 MaxAge int64 `json:"max_age"` }
如果没有设置任何corsRules,那么默认允许所有的跨域请求 参考: https://www.w3.org/TR/cors/
type DomainInfo ¶
type DomainInfo struct { Domain string `json:"domain"` // 存储空间名字 Tbl string `json:"tbl"` // 用户UID Owner int `json:"uid"` Refresh bool `json:"refresh"` Ctime int `json:"ctime"` Utime int `json:"utime"` }
DomainInfo 是绑定在存储空间上的域名的具体信息
type FetchRet ¶
type FetchRet struct { Hash string `json:"hash"` Fsize int64 `json:"fsize"` MimeType string `json:"mimeType"` Key string `json:"key"` }
FetchRet 资源抓取的返回值
type FileInfo ¶
type FileInfo struct { Hash string `json:"hash"` Fsize int64 `json:"fsize"` PutTime int64 `json:"putTime"` MimeType string `json:"mimeType"` Type int `json:"type"` }
FileInfo 文件基本信息
type FileRecorder ¶ added in v7.8.0
type FileRecorder struct {
// contains filtered or unexported fields
}
func NewFileRecorder ¶ added in v7.8.0
func NewFileRecorder(directoryPath string) (fileRecorder *FileRecorder, err error)
func (*FileRecorder) Delete ¶ added in v7.8.0
func (fileRecorder *FileRecorder) Delete(key string) error
func (*FileRecorder) GenerateRecorderKey ¶ added in v7.8.0
func (fileRecorder *FileRecorder) GenerateRecorderKey(keyInfos []string, sourceFileInfo os.FileInfo) string
type FopResult ¶
type FopResult struct { Cmd string `json:"cmd"` Code int `json:"code"` Desc string `json:"desc"` Error string `json:"error,omitempty"` Hash string `json:"hash,omitempty"` Key string `json:"key,omitempty"` Keys []string `json:"keys,omitempty"` }
FopResult 云处理操作列表,包含每个云处理操作的状态信息
type FormUploader ¶
FormUploader 表示一个表单上传的对象
func NewFormUploader ¶
func NewFormUploader(cfg *Config) *FormUploader
NewFormUploader 用来构建一个表单上传的对象
func NewFormUploaderEx ¶
func NewFormUploaderEx(cfg *Config, clt *client.Client) *FormUploader
NewFormUploaderEx 用来构建一个表单上传的对象
func (*FormUploader) Put ¶
func (p *FormUploader) Put( ctx context.Context, ret interface{}, uptoken, key string, data io.Reader, size int64, extra *PutExtra) (err error)
Put 用来以表单方式上传一个文件。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 callbackUrl 或 returnBody,那么返回的数据结构是 PutRet 结构。 uptoken 是由业务服务器颁发的上传凭证。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 data 是文件内容的访问接口(io.Reader)。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。可以指定为nil。详细见 PutExtra 结构的描述。
func (*FormUploader) PutFile ¶
func (p *FormUploader) PutFile( ctx context.Context, ret interface{}, uptoken, key, localFile string, extra *PutExtra) (err error)
PutFile 用来以表单方式上传一个文件,和 Put 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.Reader 来访问。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 callbackUrl 或 returnBody,那么返回的数据结构是 PutRet 结构。 uptoken 是由业务服务器颁发的上传凭证。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项,可以指定为nil。详细见 PutExtra 结构的描述。
func (*FormUploader) PutFileWithoutKey ¶
func (p *FormUploader) PutFileWithoutKey( ctx context.Context, ret interface{}, uptoken, localFile string, extra *PutExtra) (err error)
PutFileWithoutKey 用来以表单方式上传一个文件。不指定文件上传后保存的key的情况下,文件命名方式首先看看 uptoken 中是否设置了 saveKey,如果设置了 saveKey,那么按 saveKey 要求的规则生成 key,否则自动以文件的 hash 做 key。 和 Put 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.Reader 来访问。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 uptoken 是由业务服务器颁发的上传凭证。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。可以指定为nil。详细见 PutExtra 结构的描述。
func (*FormUploader) PutWithoutKey ¶
func (p *FormUploader) PutWithoutKey( ctx context.Context, ret interface{}, uptoken string, data io.Reader, size int64, extra *PutExtra) (err error)
PutWithoutKey 用来以表单方式上传一个文件。不指定文件上传后保存的key的情况下,文件命名方式首先看看 uptoken 中是否设置了 saveKey, 如果设置了 saveKey,那么按 saveKey 要求的规则生成 key,否则自动以文件的 hash 做 key。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 uptoken 是由业务服务器颁发的上传凭证。 data 是文件内容的访问接口(io.Reader)。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 PutExtra 结构的描述。
type InitPartsRet ¶ added in v7.8.0
type InitPartsRet struct {
UploadID string `json:"uploadId"`
}
InitPartsRet 表示分片上传 v2 初始化完毕的返回值
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"` Type int `json:"type"` EndUser string `json:"endUser"` }
ListItem 为文件列举的返回值
type OperationManager ¶
type OperationManager struct { Client *client.Client Mac *auth.Credentials Cfg *Config }
OperationManager 提供了数据处理相关的方法
func NewOperationManager ¶
func NewOperationManager(mac *auth.Credentials, cfg *Config) *OperationManager
NewOperationManager 用来构建一个新的数据处理对象
func NewOperationManagerEx ¶
func NewOperationManagerEx(mac *auth.Credentials, cfg *Config, clt *client.Client) *OperationManager
NewOperationManager 用来构建一个新的数据处理对象
func (*OperationManager) ApiHost ¶
func (m *OperationManager) ApiHost(bucket string) (apiHost string, err error)
func (*OperationManager) Pfop ¶
func (m *OperationManager) Pfop(bucket, key, fops, pipeline, notifyURL string, force bool) (persistentID string, err error)
Pfop 持久化数据处理
bucket 资源空间 key 源资源名 fops 云处理操作列表, notifyURL 处理结果通知接收URL pipeline 多媒体处理队列名称 force 强制执行数据处理
func (*OperationManager) Prefop ¶
func (m *OperationManager) Prefop(persistentID string) (ret PrefopRet, err error)
Prefop 持久化处理状态查询
func (*OperationManager) PrefopApiHost ¶
func (m *OperationManager) PrefopApiHost(persistentID string) (apiHost string)
type PfopRet ¶
type PfopRet struct {
PersistentID string `json:"persistentId,omitempty"`
}
PfopRet 为数据处理请求的回复内容
type PrefopRet ¶
type PrefopRet struct { ID string `json:"id"` Code int `json:"code"` Desc string `json:"desc"` InputBucket string `json:"inputBucket,omitempty"` InputKey string `json:"inputKey,omitempty"` Pipeline string `json:"pipeline,omitempty"` Reqid string `json:"reqid,omitempty"` Items []FopResult }
PrefopRet 为数据处理请求的状态查询回复内容
type PutExtra ¶
type PutExtra struct { // 可选,用户自定义参数,必须以 "x:" 开头。若不以x:开头,则忽略。 Params map[string]string UpHost string // 可选,当为 "" 时候,服务端自动判断。 MimeType string // 上传事件:进度通知。这个事件的回调函数应该尽可能快地结束。 OnProgress func(fsize, uploaded int64) }
PutExtra 为表单上传的额外可选项
type PutPolicy ¶
type PutPolicy struct { Scope string `json:"scope"` Expires uint64 `json:"deadline"` // 截止时间(以秒为单位) IsPrefixalScope int `json:"isPrefixalScope,omitempty"` InsertOnly uint16 `json:"insertOnly,omitempty"` // 若非0, 即使Scope为 Bucket:Key 的形式也是insert only DetectMime uint8 `json:"detectMime,omitempty"` // 若非0, 则服务端根据内容自动确定 MimeType FsizeMin int64 `json:"fsizeMin,omitempty"` FsizeLimit int64 `json:"fsizeLimit,omitempty"` MimeLimit string `json:"mimeLimit,omitempty"` ForceSaveKey bool `json:"forceSaveKey,omitempty"` SaveKey string `json:"saveKey,omitempty"` CallbackFetchKey uint8 `json:"callbackFetchKey,omitempty"` CallbackURL string `json:"callbackUrl,omitempty"` CallbackHost string `json:"callbackHost,omitempty"` CallbackBody string `json:"callbackBody,omitempty"` CallbackBodyType string `json:"callbackBodyType,omitempty"` ReturnURL string `json:"returnUrl,omitempty"` ReturnBody string `json:"returnBody,omitempty"` PersistentOps string `json:"persistentOps,omitempty"` PersistentNotifyURL string `json:"persistentNotifyUrl,omitempty"` PersistentPipeline string `json:"persistentPipeline,omitempty"` EndUser string `json:"endUser,omitempty"` DeleteAfterDays int `json:"deleteAfterDays,omitempty"` FileType int `json:"fileType,omitempty"` // contains filtered or unexported fields }
PutPolicy 表示文件上传的上传策略,参考 https://developer.qiniu.com/kodo/manual/1206/put-policy
func (*PutPolicy) UploadToken ¶
func (p *PutPolicy) UploadToken(cred *auth.Credentials) (token string)
UploadToken 方法用来进行上传凭证的生成 该方法生成的过期时间是现对于现在的时间
type PutRet ¶
type PutRet struct { Hash string `json:"hash"` PersistentID string `json:"persistentId"` Key string `json:"key"` }
PutRet 为七牛标准的上传回复内容。 如果使用了上传回调或者自定义了returnBody,那么需要根据实际情况,自己自定义一个返回值结构体
type ReferAntiLeechConfig ¶
type ReferAntiLeechConfig struct { // 防盗链模式, 0 - 关闭Refer防盗链, 1 - 开启Referer白名单,2 - 开启Referer黑名单 Mode int // 是否允许空的referer访问 AllowEmptyReferer bool // Pattern 匹配HTTP Referer头, 当模式是1或者2的时候有效 // Mode为1的时候表示允许Referer符合该Pattern的HTTP请求访问 // Mode为2的时候表示禁止Referer符合该Pattern的HTTP请求访问 // 当前允许的匹配字符串格式分为三种: // 一种为空主机头域名, 比如 foo.com; 一种是泛域名, 比如 *.bar.com; // 一种是完全通配符, 即一个 *; // 多个规则之间用;隔开, 比如: foo.com;*.bar.com;sub.foo.com;*.sub.bar.com Pattern string // 是否开启源站的防盗链, 默认为0, 只开启CDN防盗链, 当设置为1的时候 // 在源站支持的情况下开启源站的Referer防盗链 EnableSource bool }
ReferAntiLeechConfig 是用户存储空间的Refer防盗链配置
func (*ReferAntiLeechConfig) AddDomainPattern ¶
func (r *ReferAntiLeechConfig) AddDomainPattern(pattern string) *ReferAntiLeechConfig
AddDomainPattern 添加pattern到Pattern字段 假入Pattern值为"*.qiniu.com", 使用AddDomainPattern("*.baidu.com")后 r.Pattern的值为"*.qiniu.com;*.baidu.com"
func (*ReferAntiLeechConfig) AsQueryString ¶
func (r *ReferAntiLeechConfig) AsQueryString() string
AsQueryString 编码成query参数格式
func (*ReferAntiLeechConfig) SetEmptyReferer ¶
func (r *ReferAntiLeechConfig) SetEmptyReferer(enable bool) *ReferAntiLeechConfig
SetEmptyReferer 设置是否允许空Referer访问
func (*ReferAntiLeechConfig) SetEnableSource ¶
func (r *ReferAntiLeechConfig) SetEnableSource(enable bool) *ReferAntiLeechConfig
SetEnableSource 设置是否开启源站的防盗链
func (*ReferAntiLeechConfig) SetMode ¶
func (r *ReferAntiLeechConfig) SetMode(mode int) *ReferAntiLeechConfig
SetMode 设置referer防盗链模式
func (*ReferAntiLeechConfig) SetPattern ¶
func (r *ReferAntiLeechConfig) SetPattern(pattern string) *ReferAntiLeechConfig
SetPattern 设置匹配Referer的模式
type Region ¶
type Region struct { // 上传入口 SrcUpHosts []string `json:"src_up,omitempty"` // 加速上传入口 CdnUpHosts []string `json:"cdn_up,omitempty"` // 获取文件信息入口 RsHost string `json:"rs,omitempty"` // bucket列举入口 RsfHost string `json:"rsf,omitempty"` ApiHost string `json:"api,omitempty"` // 存储io 入口 IovipHost string `json:"io,omitempty"` }
存储所在的地区,例如华东,华南,华北 每个存储区域可能有多个机房信息,每个机房可能有多个上传入口
func GetRegionByID ¶
GetDefaultReion 根据RegionID获取对应的Region信息
type RegionInfo ¶
func GetRegionsInfo ¶
func GetRegionsInfo(mac *auth.Credentials) ([]RegionInfo, error)
type ResumeUploader ¶
ResumeUploader 表示一个分片上传的对象
func NewResumeUploader ¶
func NewResumeUploader(cfg *Config) *ResumeUploader
NewResumeUploader 表示构建一个新的分片上传的对象
func NewResumeUploaderEx ¶
func NewResumeUploaderEx(cfg *Config, clt *client.Client) *ResumeUploader
NewResumeUploaderEx 表示构建一个新的分片上传的对象
func (*ResumeUploader) Bput ¶
func (p *ResumeUploader) Bput(ctx context.Context, upToken string, ret *BlkputRet, body io.Reader, size int) error
发送bput请求
func (*ResumeUploader) Mkblk ¶
func (p *ResumeUploader) Mkblk(ctx context.Context, upToken string, upHost string, ret *BlkputRet, blockSize int, body io.Reader, size int) error
创建块请求
func (*ResumeUploader) Mkfile ¶
func (p *ResumeUploader) Mkfile(ctx context.Context, upToken string, upHost string, ret interface{}, key string, hasKey bool, fsize int64, extra *RputExtra) (err error)
创建文件请求
func (*ResumeUploader) Put ¶
func (p *ResumeUploader) Put(ctx context.Context, ret interface{}, upToken string, key string, f io.ReaderAt, fsize int64, extra *RputExtra) error
Put 方法用来上传一个文件,支持断点续传和分块上传。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 f 是文件内容的访问接口。考虑到需要支持分块上传和断点续传,要的是 io.ReaderAt 接口,而不是 io.Reader。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。
func (*ResumeUploader) PutFile ¶
func (p *ResumeUploader) PutFile(ctx context.Context, ret interface{}, upToken, key, localFile string, extra *RputExtra) error
PutFile 用来上传一个文件,支持断点续传和分块上传。 和 Put 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。
func (*ResumeUploader) PutFileWithoutKey ¶
func (p *ResumeUploader) PutFileWithoutKey(ctx context.Context, ret interface{}, upToken, localFile string, extra *RputExtra) error
PutFileWithoutKey 上传一个文件,支持断点续传和分块上传。文件命名方式首先看看 upToken 中是否设置了 saveKey,如果设置了 saveKey,那么按 saveKey 要求的规则生成 key,否则自动以文件的 hash 做 key。 和 PutWithoutKey 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。
func (*ResumeUploader) PutWithoutKey ¶
func (p *ResumeUploader) PutWithoutKey(ctx context.Context, ret interface{}, upToken string, f io.ReaderAt, fsize int64, extra *RputExtra) error
PutWithoutKey 方法用来上传一个文件,支持断点续传和分块上传。文件命名方式首先看看 upToken 中是否设置了 saveKey,如果设置了 saveKey,那么按 saveKey 要求的规则生成 key,否则自动以文件的 hash 做 key。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 f 是文件内容的访问接口。考虑到需要支持分块上传和断点续传,要的是 io.ReaderAt 接口,而不是 io.Reader。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 RputExtra 结构的描述。
func (*ResumeUploader) PutWithoutSize ¶
type ResumeUploaderV2 ¶ added in v7.8.0
ResumeUploaderV2 表示一个分片上传 v2 的对象
func NewResumeUploaderV2 ¶ added in v7.8.0
func NewResumeUploaderV2(cfg *Config) *ResumeUploaderV2
NewResumeUploaderV2 表示构建一个新的分片上传的对象
func NewResumeUploaderV2Ex ¶ added in v7.8.0
func NewResumeUploaderV2Ex(cfg *Config, clt *client.Client) *ResumeUploaderV2
NewResumeUploaderV2Ex 表示构建一个新的分片上传 v2 的对象
func (*ResumeUploaderV2) CompleteParts ¶ added in v7.8.0
func (p *ResumeUploaderV2) CompleteParts(ctx context.Context, upToken, upHost string, ret interface{}, bucket, key string, hasKey bool, uploadId string, extra *RputV2Extra) (err error)
完成块请求
func (*ResumeUploaderV2) InitParts ¶ added in v7.8.0
func (p *ResumeUploaderV2) InitParts(ctx context.Context, upToken, upHost, bucket, key string, hasKey bool, ret *InitPartsRet) error
初始化块请求
func (*ResumeUploaderV2) Put ¶ added in v7.8.0
func (p *ResumeUploaderV2) Put(ctx context.Context, ret interface{}, upToken string, key string, f io.ReaderAt, fsize int64, extra *RputV2Extra) error
Put 方法用来上传一个文件,支持断点续传和分块上传。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 f 是文件内容的访问接口。考虑到需要支持分块上传和断点续传,要的是 io.ReaderAt 接口,而不是 io.Reader。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 RputV2Extra 结构的描述。
func (*ResumeUploaderV2) PutFile ¶ added in v7.8.0
func (p *ResumeUploaderV2) PutFile(ctx context.Context, ret interface{}, upToken, key, localFile string, extra *RputV2Extra) error
PutFile 用来上传一个文件,支持断点续传和分块上传。 和 Put 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 key 是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 RputV2Extra 结构的描述。
func (*ResumeUploaderV2) PutFileWithoutKey ¶ added in v7.8.0
func (p *ResumeUploaderV2) PutFileWithoutKey(ctx context.Context, ret interface{}, upToken, localFile string, extra *RputV2Extra) error
PutFileWithoutKey 上传一个文件,支持断点续传和分块上传。文件命名方式首先看看 upToken 中是否设置了 saveKey,如果设置了 saveKey,那么按 saveKey 要求的规则生成 key,否则自动以文件的 hash 做 key。 和 PutWithoutKey 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 localFile 是要上传的文件的本地路径。 extra 是上传的一些可选项。详细见 RputV2Extra 结构的描述。
func (*ResumeUploaderV2) PutWithoutKey ¶ added in v7.8.0
func (p *ResumeUploaderV2) PutWithoutKey(ctx context.Context, ret interface{}, upToken string, f io.ReaderAt, fsize int64, extra *RputV2Extra) error
PutWithoutKey 方法用来上传一个文件,支持断点续传和分块上传。文件命名方式首先看看 upToken 中是否设置了 saveKey,如果设置了 saveKey,那么按 saveKey 要求的规则生成 key,否则自动以文件的 hash 做 key。
ctx 是请求的上下文。 ret 是上传成功后返回的数据。如果 upToken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 upToken 是由业务服务器颁发的上传凭证。 f 是文件内容的访问接口。考虑到需要支持分块上传和断点续传,要的是 io.ReaderAt 接口,而不是 io.Reader。 fsize 是要上传的文件大小。 extra 是上传的一些可选项。详细见 RputV2Extra 结构的描述。
func (*ResumeUploaderV2) PutWithoutSize ¶ added in v7.8.0
func (p *ResumeUploaderV2) PutWithoutSize(ctx context.Context, ret interface{}, upToken, key string, r io.Reader, extra *RputV2Extra) error
func (*ResumeUploaderV2) UpHost ¶ added in v7.8.0
func (p *ResumeUploaderV2) UpHost(ak, bucket string) (upHost string, err error)
func (*ResumeUploaderV2) UploadParts ¶ added in v7.8.0
func (p *ResumeUploaderV2) UploadParts(ctx context.Context, upToken, upHost, bucket, key string, hasKey bool, uploadId string, partNumber int64, partMD5 string, ret *UploadPartsRet, body io.Reader, size int) error
发送块请求
type RputExtra ¶
type RputExtra struct { Recorder Recorder // 可选。上传进度记录 Params map[string]string // 可选。用户自定义参数,以"x:"开头,而且值不能为空,否则忽略 UpHost string MimeType string // 可选。 ChunkSize int // 可选。每次上传的Chunk大小 TryTimes int // 可选。尝试次数 Progresses []BlkputRet // 可选。上传进度 Notify func(blkIdx int, blkSize int, ret *BlkputRet) // 可选。进度提示(注意多个block是并行传输的) NotifyErr func(blkIdx int, blkSize int, err error) }
RputExtra 表示分片上传额外可以指定的参数
type RputV2Extra ¶ added in v7.8.0
type RputV2Extra struct { Recorder Recorder // 可选。上传进度记录 Metadata map[string]string // 可选。用户自定义文件 metadata 信息 CustomVars map[string]string // 可选。用户自定义参数,以"x:"开头,而且值不能为空,否则忽略 UpHost string MimeType string // 可选。 PartSize int64 // 可选。每次上传的块大小 TryTimes int // 可选。尝试次数 Notify func(partNumber int64, ret *UploadPartsRet) // 可选。进度提示(注意多个block是并行传输的) NotifyErr func(partNumber int64, err error) // contains filtered or unexported fields }
RputV2Extra 表示分片上传 v2 额外可以指定的参数
type Settings ¶
type Settings struct { TaskQsize int // 可选。任务队列大小。为 0 表示取 Workers * 4。 Workers int // 并行 Goroutine 数目。 ChunkSize int // 默认的Chunk大小,不设定则为4M(仅在分片上传 v1 中使用) PartSize int64 // 默认的Part大小,不设定则为4M(仅在分片上传 v2 中使用) TryTimes int // 默认的尝试次数,不设定则为3 }
Settings 为分片上传设置
type UcQueryRet ¶
type UcQueryRet struct { TTL int `json:"ttl"` Io map[string]map[string][]string `json:"io"` Up map[string]UcQueryUp `json:"up"` }
UcQueryRet 为查询请求的回复
type UcQueryUp ¶
type UcQueryUp struct { Main []string `json:"main,omitempty"` Backup []string `json:"backup,omitempty"` Info string `json:"info,omitempty"` }
UcQueryUp 为查询请求回复中的上传域名信息
type UploadPartsRet ¶ added in v7.8.0
UploadPartsRet 表示分片上传 v2 每个片上传完毕的返回值