Documentation ¶
Index ¶
- Variables
- func ComputeHashFromBytes(b []byte) (etag string)
- func ComputeHashFromFile(filename string) (etag string, err error)
- func DownloadDir(ctx *Context, remoteRoot string, localRoot string) (err error)
- func DownloadFile(ctx *Context, remotePath string, localPath string) (err error)
- func DownloadFileWithHash(ctx *Context, remotePath string, localPath string, hash string) (err error)
- func ListPrefix(ctx *Context, prefix string) (entries []rsf.ListItem, err error)
- func NormalizeRemotePath(path string) string
- func RemovePrefix(ctx *Context, prefix string) (err error)
- func UploadDir(ctx *Context, localRoot string, remoteRoot string) (err error)
- func UploadDirMulitThread(ctx *Context, localRoot string, remoteRoot string) (err error)
- func UploadFileCheckExist(ctx *Context, localPath string, remotePath string) (err error)
- func UploadFileWithHash(ctx *Context, localPath string, remotePath string, expectHash string) (err error)
- type Bucket
- type Context
- func (ctx *Context) BatchStat(PathList []string) (output []FileInfo, err error)
- func (ctx *Context) DownloadOneToFile(remoteRoot string, localRoot string) (err error)
- func (ctx *Context) DownloadToBytes(remotePath string) (b []byte, err error)
- func (ctx *Context) DownloadToFile(remoteRoot string, localRoot string) (err error)
- func (ctx *Context) DownloadToWriter(remotePath string, w io.Writer) (err error)
- func (ctx *Context) GetName() string
- func (ctx *Context) GetSchemeAndDomain() string
- func (ctx *Context) ListPrefix(prefix string) (output []FileInfo, err error)
- func (ctx *Context) MustDownloadToBytes(remotePath string) (b []byte)
- func (ctx *Context) MustDownloadToFile(remoteRoot string, localRoot string)
- func (ctx *Context) MustListPrefix(prefix string) (output []FileInfo)
- func (ctx *Context) MustRemoveBatch(PathList []string)
- func (ctx *Context) MustUploadFromBytes(remotePath string, context []byte)
- func (ctx *Context) MustUploadFromFile(localRoot string, remoteRoot string)
- func (ctx *Context) RemovePrefix(prefix string) (err error)
- func (ctx *Context) UploadFromBytes(remotePath string, b []byte) (err error)
- func (ctx *Context) UploadFromFile(localRoot string, remoteRoot string) (err error)
- func (ctx *Context) UploadFromReader(remotePath string, reader io.Reader) (err error)
- type FileInfo
Constants ¶
This section is empty.
Variables ¶
var Download = DownloadDir
var ErrNoFile = errors.New("Not found file")
var ThreadNum = 5
var Upload = UploadDirMulitThread
上传文件或目录
Functions ¶
func ComputeHashFromBytes ¶
func ComputeHashFromFile ¶
计算从文件计算七牛hash值
func DownloadDir ¶
@deprecated
func DownloadFile ¶
@deprecated TODO 这个会多建一个空目录,这个算安全隐患.
func DownloadFileWithHash ¶
func DownloadFileWithHash(ctx *Context, remotePath string, localPath string, hash string) (err error)
下载单个文件,到本地,会覆盖本地已经存在的文件,会创建所有父级目录,会使用hash检查文件是否存在. @deprecated
func ListPrefix ¶
列出所有前缀是xxx的数据, 已处理1000个限制 已看过sdk的文档,此处没有很简单的办法可以进行并发优化.
func NormalizeRemotePath ¶
正规化传给七牛的远程路径 解决windows目录分隔符和开头的"/"的问题
func UploadDirMulitThread ¶
多线程上传目录 1.某个文件仅在一个线程中上传, 2.检查同名和同内容的文件是否已经存在了,如果存在,且hash相同便不上传(断点续传) TODO 解决一边上传,一边修改的bug.
func UploadFileCheckExist ¶
上传文件,检查同名和同内容文件 先找cdn上是不是已经有一样的文件了,以便分文件断点续传,再上传
Types ¶
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
func NewContext ¶
注意: 由于实现的问题,全局只能使用一个Context, TODO 解决全局只能使用一个Context的问题
func (*Context) BatchStat ¶
批量获取文件信息 PathList 是远程路径 路径里面开头带 / 和不带 / 效果一致. FileInfo 里面的 Hash是空表示没有找到文件.
func (*Context) DownloadOneToFile ¶
下载一个文件, 开头带 / 或不带 / 效果一致
func (*Context) DownloadToBytes ¶
func (*Context) DownloadToFile ¶
可以下载文件或目录 remoteRoot 开头带 / 或不带 / 效果一致
func (*Context) DownloadToWriter ¶
下载到一个Writer里面
func (*Context) GetSchemeAndDomain ¶
返回 scheme和domain ,结尾没有 / 例如: http://xxx.com
func (*Context) ListPrefix ¶
func (*Context) MustDownloadToBytes ¶
func (*Context) MustDownloadToFile ¶
func (*Context) MustListPrefix ¶
返回的path前面不带 /
func (*Context) MustRemoveBatch ¶
目录开头带 / 或不带 / 效果一致
func (*Context) MustUploadFromBytes ¶
func (*Context) MustUploadFromFile ¶
func (*Context) RemovePrefix ¶
prefix 开头带 / 或不带 / 效果一致
func (*Context) UploadFromBytes ¶
上传字节 remotePath 开头带 / 或不带 / 效果完全不一样. 正常情况应该是不带 /的
func (*Context) UploadFromFile ¶
可以上传文件或目录 remoteRoot 开头带 / 或不带 / 效果一致