初始化请求

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 提供NewFileRequestNewFileRequestWithHeader方法用于创建一个 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
}