-
Notifications
You must be signed in to change notification settings - Fork 3
/
options.go
72 lines (61 loc) · 1.28 KB
/
options.go
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Author: yann
// Date: 2022/5/29
// Desc: hdfs
package hdfs
import (
"net/http"
"time"
)
type Option func(client *Client)
//HostOption 主机
func HostOption(host string) Option {
return func(client *Client) {
client.host = host
}
}
//PortOption 端口
func PortOption(port int) Option {
return func(client *Client) {
client.port = port
}
}
//SSLOption use http or https. ture is https.
func SSLOption(SSL bool) Option {
return func(client *Client) {
if SSL {
client.protocol = "https"
} else {
client.protocol = "http"
}
}
}
//UserOption HDFS User
func UserOption(user string) Option {
return func(client *Client) {
client.user = user
}
}
//ReplicationOption 复制份数
func ReplicationOption(replication int) Option {
return func(client *Client) {
client.replication = replication
}
}
//TimeoutOption 设置超时时间
func TimeoutOption(timeout time.Duration) Option {
return func(client *Client) {
client.Timeout = timeout
}
}
//TransportOption 设置传输
func TransportOption(transport *http.Transport) Option {
return func(client *Client) {
client.Transport = transport
}
}
//MinBlockSizeOption 设置最小块大小 单位字节
func MinBlockSizeOption(blockSize uint64) Option {
return func(client *Client) {
client.blockSize = blockSize
}
}