// 上传一个文件,支持断点续传和分块上传。自动以文件的 hash 作为文件的访问路径(key)。 // // ctx 是请求的上下文。 // ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody,那么返回的数据结构是 PutRet 结构。 // data 是文件内容的访问接口。考虑到需要支持分块上传和断点续传,要的是 io.ReaderAt 接口,而不是 io.Reader。 // fsize 是要上传的文件大小。 // extra 是上传的一些可选项。详细见 RputExtra 结构的描述。 // func (p Bucket) RputWithoutKey( ctx Context, ret interface{}, data io.ReaderAt, size int64, extra *RputExtra) error { uploader := kodocli.Uploader{Conn: p.Conn.Client, UpHosts: p.Conn.UpHosts} uptoken := p.makeUptokenWithoutKey() return uploader.RputWithoutKey(ctx, ret, uptoken, data, size, (*kodocli.RputExtra)(extra)) }