Documentation ¶
Index ¶
- func GetFileEtag(path string) string
- func GetFileMimeType(path string) string
- func VerifyHTTPCode(code int) bool
- type Auth
- func (A Auth) Authorization(method, bucket, key string, header http.Header) string
- func (A Auth) AuthorizationBucketMgr(query url.Values) string
- func (A Auth) AuthorizationPolicy(method, bucket, key, policy string, header http.Header) string
- func (A Auth) AuthorizationPrivateURL(method, bucket, key, expires string, header http.Header) (string, string)
- func (A Auth) CanonicalizedUcloudHeaders(ucloudHeader http.Header) string
- type BucketDataSet
- type BucketListResponse
- type BucketResponse
- type CommonPreInfo
- type Config
- type DomainSet
- type FileDataSet
- type FileListResponse
- type ListObjectsResponse
- type MultipartState
- type ObjectInfo
- type UFileRequest
- func (u *UFileRequest) AbortMultipartUpload(state *MultipartState) error
- func (u *UFileRequest) AsyncMPut(filePath, keyName, mimeType string) error
- func (u *UFileRequest) AsyncMPutWithPolicy(filePath, keyName, mimeType string, policy_json string) error
- func (u *UFileRequest) AsyncUpload(filePath, keyName, mimeType string, jobs int) error
- func (u *UFileRequest) AsyncUploadWithPolicy(filePath, keyName, mimeType string, jobs int, policy_json string) error
- func (u *UFileRequest) ClassSwitch(keyName string, storageClass string) (err error)
- func (u *UFileRequest) CompareFileEtag(remoteKeyName, localFilePath string) bool
- func (u *UFileRequest) Copy(dstkeyName, srcBucketName, srcKeyName string) (err error)
- func (u *UFileRequest) CreateBucket(bucketName, region, bucketType, projectID string) (bucket BucketResponse, err error)
- func (u *UFileRequest) DeleteBucket(bucketName, projectID string) (bucket BucketResponse, err error)
- func (u *UFileRequest) DeleteFile(keyName string) error
- func (u *UFileRequest) DescribeBucket(bucketName string, offset, limit int, projectID string) (list BucketListResponse, err error)
- func (u *UFileRequest) Download(reqURL string) error
- func (u *UFileRequest) DownloadFile(writer io.Writer, keyName string) error
- func (u *UFileRequest) DownloadFileWithIopString(writer io.Writer, keyName string, iopcmd string) error
- func (u *UFileRequest) DownloadWithDecryptFile(writer io.Writer, keyName string) error
- func (u *UFileRequest) DumpResponse(isDumpBody bool) []byte
- func (u *UFileRequest) FinishMultipartUpload(state *MultipartState) error
- func (u *UFileRequest) FinishMultipartUploadWithPolicy(state *MultipartState, policy_json string) error
- func (u *UFileRequest) GetPrivateURL(keyName string, expiresDuation time.Duration) string
- func (u *UFileRequest) GetPublicURL(keyName string) string
- func (u *UFileRequest) HeadFile(keyName string) error
- func (u *UFileRequest) IOMutipartAsyncUpload(reader io.Reader, keyName, mimeType string) (err error)
- func (u *UFileRequest) IOPut(reader io.Reader, keyName, mimeType string) (err error)
- func (u *UFileRequest) InitiateMultipartUpload(keyName, mimeType string) (*MultipartState, error)
- func (u *UFileRequest) ListObjects(prefix, marker, delimiter string, maxkeys int) (list ListObjectsResponse, err error)
- func (u *UFileRequest) MPut(filePath, keyName, mimeType string) error
- func (u *UFileRequest) MPutWithPolicy(filePath, keyName, mimeType string, policy_json string) error
- func (u *UFileRequest) PostFile(filePath, keyName, mimeType string) (err error)
- func (u *UFileRequest) PrefixFileList(prefix, marker string, limit int) (list FileListResponse, err error)
- func (u *UFileRequest) PutFile(filePath, keyName, mimeType string) error
- func (u *UFileRequest) PutFileWithIopString(filePath, keyName, mimeType string, iopcmd string) error
- func (u *UFileRequest) PutFileWithPolicy(filePath, keyName, mimeType string, policy_json string) error
- func (u *UFileRequest) PutWithEncryptFile(filePath, keyName, mimeType string) error
- func (u *UFileRequest) Rename(keyName, newKeyName, force string) (err error)
- func (u *UFileRequest) Restore(keyName string) (err error)
- func (u *UFileRequest) UpdateBucket(bucketName, bucketType, projectID string) (bucket BucketResponse, err error)
- func (u *UFileRequest) UploadHit(filePath, keyName string) (err error)
- func (u *UFileRequest) UploadPart(buf *bytes.Buffer, state *MultipartState, partNumber int) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetFileMimeType ¶
GetFileMimeType 获取文件的 mime type 值,接收文件路径作为参数。如果检测不到,则返回空。
func VerifyHTTPCode ¶
VerifyHTTPCode 检查 HTTP 的返回值是否为 2XX,如果不是就返回 false。
Types ¶
type Auth ¶
type Auth struct {
// contains filtered or unexported fields
}
Auth 构造签名的工具,使用本 SDK 你不需要关心 Auth 这一整个模块,以及它暴露出来的签名算法。 如果你希望自己封装 API 可以使用这里面的暴露出来的接口来填充 http authorization。
func (Auth) Authorization ¶
Authorization 构造一个主要用于上传文件的签名,返回 HMAC-Sh1 的签名字符串,可以直接填充到 HTTP authorization header 里面。 key 是传到 ufile 所使用的文件名,bucekt 是文件上传后存放的 bucket。 method 就是你当前这个 HTTP 请求的 Method。 header 就是你当前这个 HTTP 的 header。
func (Auth) AuthorizationBucketMgr ¶
AuthorizationBucketMgr 生成用于管理 bucket 的签名。
func (Auth) AuthorizationPolicy ¶
AuthorizationPolicy 构造支持回调策略的签名,policy 是经过 base64 编码后的 json string。 本签名函数就是多了一个 policy 字段,其他的参数和 Authoriazation 一样。
func (Auth) AuthorizationPrivateURL ¶
func (A Auth) AuthorizationPrivateURL(method, bucket, key, expires string, header http.Header) (string, string)
AuthorizationPrivateURL 构造私有空间文件下载链接的签名,其中 expires 是当前的时间加上一个过期的时间,再转为字符串。格式是 unix time second. 其他的参数含义和 Authoriazation 函数一样。 有时我们需要把签名后的 URL 直接拿来用,header 参数可以直接构造一个空的 http.Header{} 传入即可。
type BucketDataSet ¶
type BucketDataSet struct { BucketName string `json:"BucketName,omitempty"` BucketID string `json:"BucketId,omitempty"` Domain DomainSet `json:"Domain,omitempty"` Type string `json:"Type,omitempty"` CreateTime int `json:"CreateTime,omitempty"` ModifyTime int `json:"ModifyTime,omitempty"` CdnDomainID []string `json:"CdnDomainId,omitempty"` Biz string `json:"Biz,omitempty"` Region string `json:"Region,omitempty"` HasUserDomain int `json:"HasUserDomain,omitempty"` }
BucketDataSet 用于 BucketListResponse 里面的 DataSet 字段
type BucketListResponse ¶
type BucketListResponse struct { RetCode int `json:"RetCode,omitempty"` Action string `json:"Action,omitempty"` Message string `json:"Message,omitempty"` DataSet []BucketDataSet `json:"DataSet,omitempty"` }
BucketListResponse 用于 DescribeBucket 返回的数据。
func (BucketListResponse) Error ¶
func (b BucketListResponse) Error() error
func (BucketListResponse) String ¶
func (b BucketListResponse) String() string
String 把 BucketListResponse 里面的字段格式化。
type BucketResponse ¶
type BucketResponse struct { RetCode int `json:"RetCode,omitempty"` Action string `json:"Action,omitempty"` BucketName string `json:"BucketName,omitempty"` BucketID string `json:"BucketId,omitempty"` Message string `json:"Message,omitempty"` }
BucketResponse 用于 Bucket 模块返回的数据。
func (BucketResponse) Error ¶
func (b BucketResponse) Error() error
func (BucketResponse) String ¶
func (b BucketResponse) String() string
type CommonPreInfo ¶
type CommonPreInfo struct {
Prefix string `json:"Prefix,omitempty"`
}
CommonPreInfo 用于 ListObjectsResponse 里面的 CommonPrefixes 字段 Prefix 以Delimiter结尾的公共前缀目录名
type Config ¶
type Config struct { PublicKey string `json:"public_key"` PrivateKey string `json:"private_key"` BucketName string `json:"bucket_name"` FileHost string `json:"file_host"` BucketHost string `json:"bucket_host"` VerifyUploadMD5 bool `json:"verfiy_upload_md5"` CryptoKey string `json:"crypto_key"` }
Config 配置文件序列化所需的全部字段
type DomainSet ¶
type DomainSet struct { Src []string `json:"Src,omitempty"` Cdn []string `json:"Cdn,omitempty"` CustomSrc []string `json:"CustomSrc,omitempty"` CustomCdn []string `json:"CustomCdn,omitempty"` }
DomainSet 用于 BucketDataSet 里面的 Domain 字段
type FileDataSet ¶
type FileDataSet struct { BucketName string `json:"BucketName,omitempty"` FileName string `json:"FileName,omitempty"` Hash string `json:"Hash,omitempty"` MimeType string `json:"MimeType,omitempty"` FirstObject string `json:"first_object,omitempty"` Size int `json:"Size,omitempty"` CreateTime int `json:"CreateTime,omitempty"` ModifyTime int `json:"ModifyTime,omitempty"` StorageClass string `json:"StorageClass,omitempty"` RestoreStatus string `json:"RestoreStatus,omitempty"` }
FileDataSet 用于 FileListResponse 里面的 DataSet 字段。
type FileListResponse ¶
type FileListResponse struct { BucketName string `json:"BucketName,omitempty"` BucketID string `json:"BucketId,omitempty"` NextMarker string `json:"NextMarker,omitempty"` DataSet []FileDataSet `json:"DataSet,omitempty"` }
FileListResponse 用 PrefixFileList 接口返回的 list 数据。
func (FileListResponse) String ¶
func (f FileListResponse) String() string
type ListObjectsResponse ¶
type ListObjectsResponse struct { Name string `json:"Name,omitempty"` Prefix string `json:"Prefix,omitempty"` MaxKeys string `json:"MaxKeys,omitempty"` Delimiter string `json:"Delimiter,omitempty"` IsTruncated bool `json:"IsTruncated,omitempty"` NextMarker string `json:"NextMarker,omitempty"` Contents []ObjectInfo `json:"Contents,omitempty"` CommonPrefixes []CommonPreInfo `json:"CommonPrefixes,omitempty"` }
ListObjectsResponse 用 ListObjects 接口返回的 list 数据。 Name Bucket名称 Prefix 查询结果的前缀 MaxKeys 查询结果的最大数量 Delimiter 查询结果的目录分隔符 IsTruncated 返回结果是否被截断。若值为true,则表示仅返回列表的一部分,NextMarker可作为之后迭代的游标 NextMarker 可作为查询请求中的的Marker参数,实现迭代查询 Contents 文件列表 CommonPrefixes 以Delimiter结尾,并且有共同前缀的目录列表
func (ListObjectsResponse) String ¶
func (f ListObjectsResponse) String() string
type MultipartState ¶
type MultipartState struct { BlkSize int //服务器返回的分片大小 // contains filtered or unexported fields }
MultipartState 用于保存分片上传的中间状态
func (*MultipartState) UnmarshalJSON ¶
func (m *MultipartState) UnmarshalJSON(bytes []byte) error
UnmarshalJSON custom unmarshal json
type ObjectInfo ¶
type ObjectInfo struct { Key string `json:"Key,omitempty"` MimeType string `json:"MimeType,omitempty"` LastModified int `json:"LastModified,omitempty"` CreateTime int `json:"CreateTime,omitempty"` Etag string `json:"Etag,omitempty"` Size string `json:"Size,omitempty"` StorageClass string `json:"StorageClass,omitempty"` UserMeta map[string]string `json:"UserMeta,omitempty"` }
ObjectInfo 用于 ListObjectsResponse 里面的 Contents 字段 Key 文件名称 MimeType 文件mimetype LastModified 文件最后修改时间 CreateTime 文件创建时间 ETag 标识文件内容 Size 文件大小 StorageClass 文件存储类型 UserMeta 用户自定义元数据
type UFileRequest ¶
type UFileRequest struct { Auth Auth BucketName string Host string Client *http.Client Context context.Context Crypto *utils.Crypto RequestHeader http.Header LastResponseStatus int LastResponseHeader http.Header LastResponseBody []byte // contains filtered or unexported fields }
UFileRequest SDK 主要的 request 模块。本 SDK 遵从以下原则:
1.接口尽可能简洁,隐藏所有复杂实现。
2.本 SDK 主要的作用是封装 HTTP 请求,不做过多其他的封装(如 HTTP Body 序列化,详细的错误检查)。
3.只简单封装 HTTP 请求所需要的参数,给接口使用者提供所有原生的 HTTP response header,body,status code 返回,以便排错。
4.远端请求返回值统一返回一个 error,如果为 nil 表示无错。LastResponseStatus,LastResponseHeader,LastResponseBody 可以查看具体的 HTTP 返回信息()。如果你想少敲几行代码可以直接调用 DumpResponse(true) 查看详细返回。
func NewBucketRequest ¶
func NewBucketRequest(config *Config, client *http.Client) (*UFileRequest, error)
NewBucketRequest 创建一个用于管理 bucket 的 request。 注意:不要拿它去调用文件管理的 request,我文件管理和 bucket 管理接口放到一个 request 里面的目的就是让接口更统一,代码更清晰,简洁。 config 参数里面包含了公私钥,以及其他必填的参数。详情见 config 相关文档。
func NewFileRequest ¶
func NewFileRequest(config *Config, client *http.Client) (*UFileRequest, error)
NewFileRequest 创建一个用于管理文件的 request,管理文件的 url 与 管理 bucket 接口不一样, 请将 bucket 和文件管理所需要的分开,NewUBucketRequest 是用来管理 bucket 的。 Request 创建后的 instance 不是线程安全的,如果你需要做并发的操作,请创建多个 UFileRequest。 config 参数里面包含了公私钥,以及其他必填的参数。详情见 config 相关文档。 client 这里你可以传空,会使用默认的 http.Client。如果你需要设置超时以及一些其他相关的网络配置选项请传入一个自定义的 client。
func NewFileRequestWithHeader ¶
func NewFileRequestWithHeader(config *Config, header http.Header, client *http.Client) (*UFileRequest, error)
NewFileRequestWithHeader 创建一个可携带用户自定义http请求头的 request Request 创建后的 instance 不是线程安全的,如果你需要做并发的操作,请创建多个 UFileRequest。 config 参数里面包含了公私钥,以及其他必填的参数。详情见 config 相关文档。 header 自定义http请求头 client 这里你可以传空,会使用默认的 http.Client。如果你需要设置超时以及一些其他相关的网络配置选项请传入一个自定义的 client。
func (*UFileRequest) AbortMultipartUpload ¶
func (u *UFileRequest) AbortMultipartUpload(state *MultipartState) error
AbortMultipartUpload 取消分片上传,如果掉用 UploadPart 出现错误,可以调用本函数取消分片上传。 state 参数是 InitiateMultipartUpload 返回的
func (*UFileRequest) AsyncMPut ¶
func (u *UFileRequest) AsyncMPut(filePath, keyName, mimeType string) error
AsyncMPut 异步分片上传一个文件,filePath 是本地文件所在的路径,内部会自动对文件进行分片上传,上传的方式是使用异步的方式同时传多个分片的块。 mimeType 如果为空的话,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。 大于 100M 的文件推荐使用本接口上传。 同时并发上传的分片数量为10
func (*UFileRequest) AsyncMPutWithPolicy ¶
func (u *UFileRequest) AsyncMPutWithPolicy(filePath, keyName, mimeType string, policy_json string) error
AsyncMPut 异步分片上传一个文件,filePath 是本地文件所在的路径,内部会自动对文件进行分片上传,上传的方式是使用异步的方式同时传多个分片的块。 mimeType 如果为空的话,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。 大于 100M 的文件推荐使用本接口上传。 同时并发上传的分片数量为10
func (*UFileRequest) AsyncUpload ¶
func (u *UFileRequest) AsyncUpload(filePath, keyName, mimeType string, jobs int) error
AsyncUpload AsyncMPut 的升级版, jobs 表示同时并发的数量。
func (*UFileRequest) AsyncUploadWithPolicy ¶
func (u *UFileRequest) AsyncUploadWithPolicy(filePath, keyName, mimeType string, jobs int, policy_json string) error
AsyncUpload AsyncMPut 的升级版, jobs 表示同时并发的数量。
func (*UFileRequest) ClassSwitch ¶
func (u *UFileRequest) ClassSwitch(keyName string, storageClass string) (err error)
ClassSwitch 存储类型转换接口 keyName 文件名称 storageClass 所要转换的新文件存储类型,目前支持的类型分别是标准:"STANDARD"、低频:"IA"、冷存:"ARCHIVE"
func (*UFileRequest) CompareFileEtag ¶
func (u *UFileRequest) CompareFileEtag(remoteKeyName, localFilePath string) bool
CompareFileEtag 检查远程文件的 etag 和本地文件的 etag 是否一致
func (*UFileRequest) Copy ¶
func (u *UFileRequest) Copy(dstkeyName, srcBucketName, srcKeyName string) (err error)
Copy 从同组织下的源Bucket中拷贝指定文件到目的Bucket中,并以新文件名命名 dstkeyName 拷贝到目的Bucket后的新文件名 srcBucketName 待拷贝文件所在的源Bucket名称 srcKeyName 待拷贝文件名称
func (*UFileRequest) CreateBucket ¶
func (u *UFileRequest) CreateBucket(bucketName, region, bucketType, projectID string) (bucket BucketResponse, err error)
CreateBucket 创建一个 bucket, bucketName 必须全部为小写字母,不能带符号和特殊字符。
region 表示 ufile 所在的可用区,目前支持北京,香港,广州,上海二,雅加达,洛杉矶。一下是可用区值的映射:
北京 cn-bj
广州 cn-gd
可用区以控制台列出来的为准,更多可用区具体的值在 https://docs.ucloud.cn/api/summary/regionlist 查看。
bucketType 可以填 public(公有空间) 和 private(私有空间) projectID bucket 所在的项目 ID,可为空。
func (*UFileRequest) DeleteBucket ¶
func (u *UFileRequest) DeleteBucket(bucketName, projectID string) (bucket BucketResponse, err error)
DeleteBucket 删除一个 bucket,如果成功,status code 会返回 204 no-content
func (*UFileRequest) DeleteFile ¶
func (u *UFileRequest) DeleteFile(keyName string) error
DeleteFile 删除一个文件,如果删除成功 statuscode 会返回 204,否则会返回 404 表示文件不存在。 keyName 表示传到 ufile 的文件名。
func (*UFileRequest) DescribeBucket ¶
func (u *UFileRequest) DescribeBucket(bucketName string, offset, limit int, projectID string) (list BucketListResponse, err error)
DescribeBucket 获取 bucket 的详细信息,如果 bucketName 为空,返回当前账号下所有的 bucket。 limit 是限制返回的 bucket 列表数量。 offset 是列表的偏移量,默认为 0。 projectID 可为空。
func (*UFileRequest) Download ¶
func (u *UFileRequest) Download(reqURL string) error
Download 把文件下载到 HTTP Body 里面,这里只能用来下载小文件,建议使用 DownloadFile 来下载大文件。
func (*UFileRequest) DownloadFile ¶
func (u *UFileRequest) DownloadFile(writer io.Writer, keyName string) error
Download 文件下载接口, 对下载大文件比较友好;支持流式下载
func (*UFileRequest) DownloadFileWithIopString ¶
func (u *UFileRequest) DownloadFileWithIopString(writer io.Writer, keyName string, iopcmd string) error
DownloadFileWithIopString 支持下载iop,直接指定iop命令字符串
func (*UFileRequest) DownloadWithDecryptFile ¶
func (u *UFileRequest) DownloadWithDecryptFile(writer io.Writer, keyName string) error
DownloadWithDecryptFile 文件客户端加密下载 注意在客户端加密的条件下,ufile暂不支持文件分片上传下载操作,因此客户端加密后文件下载请使用此接口 进行客户端加密下载时,需要用户提供加解密密钥,详情见配置文件相关文档
func (*UFileRequest) DumpResponse ¶
func (u *UFileRequest) DumpResponse(isDumpBody bool) []byte
DumpResponse dump 当前请求的返回结果,里面有一个 print 函数,会把 body,header,status code 直接输出到 stdout。 如果你需要 Dump 到其他的地方,直接拿返回值即可。
func (*UFileRequest) FinishMultipartUpload ¶
func (u *UFileRequest) FinishMultipartUpload(state *MultipartState) error
FinishMultipartUpload 完成分片上传。分片上传必须要调用的接口。 state 参数是 InitiateMultipartUpload 返回的
func (*UFileRequest) FinishMultipartUploadWithPolicy ¶
func (u *UFileRequest) FinishMultipartUploadWithPolicy(state *MultipartState, policy_json string) error
FinishMultipartUpload 完成分片上传。分片上传必须要调用的接口。 state 参数是 InitiateMultipartUpload 返回的
func (*UFileRequest) GetPrivateURL ¶
func (u *UFileRequest) GetPrivateURL(keyName string, expiresDuation time.Duration) string
GetPrivateURL 获取私有空间的文件下载 URL。 keyName 表示传到 ufile 的文件名。 expiresDuation 表示下载链接的过期时间,从现在算起,24 * time.Hour 表示过期时间为一天。
func (*UFileRequest) GetPublicURL ¶
func (u *UFileRequest) GetPublicURL(keyName string) string
GetPublicURL 获取公有空间的文件下载 URL keyName 表示传到 ufile 的文件名。
func (*UFileRequest) HeadFile ¶
func (u *UFileRequest) HeadFile(keyName string) error
HeadFile 获取一个文件的基本信息,返回的信息全在 header 里面。包含 mimeType, content-length(文件大小), etag, Last-Modified:。 keyName 表示传到 ufile 的文件名。
func (*UFileRequest) IOMutipartAsyncUpload ¶
func (u *UFileRequest) IOMutipartAsyncUpload(reader io.Reader, keyName, mimeType string) (err error)
IOMutipartAsyncUpload 流式分片上传接口,你必须确保你的 reader 接口每次调用是递进式的调用,也就是像文件那样的读取方式。 mimeType 在这里的检测不会很准确,你可以手动指定更精确的 mimetype。 这里的会每次读取4M 的数据到 buffer 里面,适用于大量数据上传。
func (*UFileRequest) IOPut ¶
func (u *UFileRequest) IOPut(reader io.Reader, keyName, mimeType string) (err error)
IOPut 流式 put 上传接口,你必须确保你的 reader 接口每次调用是递进式的调用,也就是像文件那样的读取方式。 mimeType 在这里的检测不会很准确,你可以手动指定更精确的 mimetype。 这里的 reader 接口会把数据全部读到 HTTP Body 里面,如果你接口的数据特别大,请使用 IOMutipartAsyncUpload 接口。
func (*UFileRequest) InitiateMultipartUpload ¶
func (u *UFileRequest) InitiateMultipartUpload(keyName, mimeType string) (*MultipartState, error)
InitiateMultipartUpload 初始化分片上传,返回一个 state 用于后续的 UploadPart, FinishMultipartUpload, AbortMultipartUpload 的接口。
keyName 表示传到 ufile 的文件名。
mimeType 表示文件的 mimeType, 传空会报错,你可以使用 GetFileMimeType 方法检测文件的 mimeType。如果您上传的不是文件,您可以使用 http.DetectContentType https://golang.org/src/net/http/sniff.go?s=646:688#L11进行检测。
func (*UFileRequest) ListObjects ¶
func (u *UFileRequest) ListObjects(prefix, marker, delimiter string, maxkeys int) (list ListObjectsResponse, err error)
ListObjects 获取目录文件列表。 prefix 返回以Prefix作为前缀的目录文件列表 marker 返回以字母排序后,大于Marker的目录文件列表 delimiter 目录分隔符,当前只支持"/"和"",当Delimiter设置为"/"时,返回目录形式的文件列表,当Delimiter设置为""时,返回非目录层级文件列表 maxkeys 指定返回目录文件列表的最大数量,默认值为100
func (*UFileRequest) MPut ¶
func (u *UFileRequest) MPut(filePath, keyName, mimeType string) error
MPut 分片上传一个文件,filePath 是本地文件所在的路径,内部会自动对文件进行分片上传,上传的方式是同步一片一片的上传。 mimeType 如果为空的话,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。 大于 100M 的文件推荐使用本接口上传。
func (*UFileRequest) MPutWithPolicy ¶
func (u *UFileRequest) MPutWithPolicy(filePath, keyName, mimeType string, policy_json string) error
MPut 分片上传一个文件,filePath 是本地文件所在的路径,内部会自动对文件进行分片上传,上传的方式是同步一片一片的上传。 mimeType 如果为空的话,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。 大于 100M 的文件推荐使用本接口上传。
func (*UFileRequest) PostFile ¶
func (u *UFileRequest) PostFile(filePath, keyName, mimeType string) (err error)
PostFile 使用 HTTP Form 的方式上传一个文件。 注意:使用本接口上传文件后,调用 UploadHit 接口会返回 404,因为经过 form 包装的文件,etag 值会不一样,所以会调用失败。 mimeType 如果为空的话,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。 小于 100M 的文件推荐使用本接口上传。
func (*UFileRequest) PrefixFileList ¶
func (u *UFileRequest) PrefixFileList(prefix, marker string, limit int) (list FileListResponse, err error)
PrefixFileList 获取文件列表。 prefix 表示匹配文件前缀。 marker 标志字符串 limit 列表数量限制,传 0 会默认设置为 20.
func (*UFileRequest) PutFile ¶
func (u *UFileRequest) PutFile(filePath, keyName, mimeType string) error
PutFile 把文件直接放到 HTTP Body 里面上传,相对 PostFile 接口,这个要更简单,速度会更快(因为不用包装 form)。 mimeType 如果为空的,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。 小于 100M 的文件推荐使用本接口上传。
func (*UFileRequest) PutFileWithIopString ¶
func (u *UFileRequest) PutFileWithIopString(filePath, keyName, mimeType string, iopcmd string) error
PutFileWithIopString 支持上传iop, 直接指定iop字符串, 上传iop必须指定saveAs命令做持久化,否则图片处理不会生效
func (*UFileRequest) PutFileWithPolicy ¶
func (u *UFileRequest) PutFileWithPolicy(filePath, keyName, mimeType string, policy_json string) error
PutFile 把文件直接放到 HTTP Body 里面上传,相对 PostFile 接口,这个要更简单,速度会更快(因为不用包装 form)。 mimeType 如果为空的,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。 小于 100M 的文件推荐使用本接口上传。 支持带上传回调的参数, policy_json 为json 格式字符串
func (*UFileRequest) PutWithEncryptFile ¶
func (u *UFileRequest) PutWithEncryptFile(filePath, keyName, mimeType string) error
PutWithCryptoFile 文件客户端加密上传 进行客户端加密上传时,需要用户提供加解密密钥,详情见配置文件相关文档 本SDK支持加密算法AES-GCM-NoPadding,如有其它加密算法需求,需自行实现加解密方法 注意在客户端加密的条件下,ufile暂不支持文件分片上传下载操作。 mimeType 如果为空的,会调用 net/http 里面的 DetectContentType 进行检测。 keyName 表示传到 ufile 的文件名。
func (*UFileRequest) Rename ¶
func (u *UFileRequest) Rename(keyName, newKeyName, force string) (err error)
Rename 重命名指定文件 keyName 需要被重命名的源文件 newKeyName 修改后的新文件名 force 如果已存在同名文件,值为"true"则覆盖,否则会操作失败
func (*UFileRequest) Restore ¶
func (u *UFileRequest) Restore(keyName string) (err error)
Restore 用于解冻冷存类型的文件
func (*UFileRequest) UpdateBucket ¶
func (u *UFileRequest) UpdateBucket(bucketName, bucketType, projectID string) (bucket BucketResponse, err error)
UpdateBucket 更新一个 bucket,你可以改 bucket 的类型(私有或公有)和 项目 ID。 bucketType 填公有(public)或私有(private)。 projectID 没有可以填空("")。
func (*UFileRequest) UploadHit ¶
func (u *UFileRequest) UploadHit(filePath, keyName string) (err error)
UploadHit 文件秒传,它的原理是计算出文件的 etag 值与远端服务器进行对比,如果文件存在就快速返回。
func (*UFileRequest) UploadPart ¶
func (u *UFileRequest) UploadPart(buf *bytes.Buffer, state *MultipartState, partNumber int) error
UploadPart 上传一个分片,buf 就是分片数据,buf 的数据块大小必须为 state.BlkSize,否则会报错。 pardNumber 表示第几个分片,从 0 开始。例如一个文件按 state.BlkSize 分为 5 块,那么分片分别是 0,1,2,3,4。 state 参数是 InitiateMultipartUpload 返回的