SDK 提供了 UFileRequest 模块封装 HTTP 请求,用户对资源进行操作之前,需要先新建一个 UFileRequest 实例。完整代码参见Github
新建管理 bucket 的 request
SDK 提供NewBucketRequest
方法用于创建一个bucket 的 request实例,参数说明如下:
参数名 | 类型 | 说明 |
---|---|---|
config | *Config | config 参数里面包含了进行Bucket操作必需的公私钥,以及其他必填的参数 |
client | *http.Client | 若为空则使用默认的 http.Client。若需要设置超时或一些其他相关的网络配置选项请传入一个自定义的 client |
示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main
import (
"context"
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"time"
)
func main() {
config, err := ufsdk.LoadConfig("config.json")
if err != nil {
panic(err.Error())
}
// 新建管理 Bucket 的 request
req, err := ufsdk.NewBucketRequest(config, nil)
if err != nil {
panic(err.Error())
}
// 设置超时时间
ctx, cancel := context.WithTimeout(context.Background(), time.Second * 10)
defer cancel()
req.Context = ctx
// do something to manage bucket with req
}
新建管理 file 的 request
SDK 提供NewFileRequest
和NewFileRequestWithHeader
方法用于创建一个 file 的 request 实例
NewFileRequest
参数说明如下:
参数名 | 类型 | 说明 |
---|---|---|
config | *Config | config 参数里面包含了进行File操作必需的公私钥,以及其他必填的参数 |
client | *http.Client | 若为空则使用默认的 http.Client。若需要设置超时或一些其他相关的网络配置选项请传入一个自定义的 client |
示例一:使用默认http client创建请求并设置超时时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main
import (
"context"
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"time"
)
func main() {
config, err := ufsdk.LoadConfig("config.json")
if err != nil {
panic(err.Error())
}
// 新建管理 bucket 的 request
req, err := ufsdk.NewFileRequest (config, nil)
if err != nil {
panic(err.Error())
}
// 设置超时时间
ctx, cancel := context.WithTimeout(context.Background(), time.Second * 10)
defer cancel()
req.Context = ctx
// do something to manage file with req
}
示例二:自定义cient创建请求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"net/http"
"time"
)
func main() {
config, err := ufsdk.LoadConfig("config.json")
if err != nil {
panic(err.Error())
}
// 自定义cient创建请求
client := &http.Client{}
client.Timeout = time.Second * 1
req, err := ufsdk.NewFileRequest(config, client)
if err != nil {
panic(err.Error())
}
// do something to manage file with req
}
NewFileRequestWithHeader
参数说明如下:
参数名 | 类型 | 说明 |
---|---|---|
config | *Config | config 参数里面包含了进行File操作必需的公私钥,以及其他必填的参数 |
hreader | *http.Header | 自定义http请求头 |
client | *http.Client | 若为空则使用默认的 http.Client。若需要设置超时或一些其他相关的网络配置选项请传入一个自定义的 client |
自定义Http Header创建请求示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"net/http"
)
func main() {
config, err := ufsdk.LoadConfig("config.json")
if err != nil {
panic(err.Error())
}
// 自定义Http Header创建请求
header := make(http.Header)
header.Add("X-Ufile-Storage-Class", "ARCHIVE")
req, err := ufsdk.NewFileRequestWithHeader(config, header, nil)
if err != nil {
panic(err.Error())
}
// do something to manage file with req
}