SDK 提供了ClassSwitch
方法用以实现文件存储类型转换,完整代码详见Github,存储类型概念详见存储类型。
ClassSwitch
方法请求的 US3 API 为 ClassSwitch ,具体详见 ClassSwitch API文档。
说明:
- 目前 ClassSwitch 仅支持由热向冷转换,即 STANDARD -> IA,IA -> ARCHIVE 和 STANDARD -> ARCHIVE
- 如需要将冷文件向热转换,重新上传即可
标准转低频
示例:
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
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"log"
"net/http"
)
const (
ConfigFile = "./config.json"
FilePath = "test.txt" // 待上传的本地文件
KeyName = "test.txt" // 待转换的文件
)
func main() {
// 加载配置,创建请求
config, err := ufsdk.LoadConfig(ConfigFile)
if err != nil {
panic(err.Error())
}
header := make(http.Header)
header.Add("X-Ufile-Storage-Class", "STANDARD")
req, err := ufsdk.NewFileRequestWithHeader(config, header, nil)
if err != nil {
panic(err.Error())
}
// 上传标准存储类型文件
err = req.PutFile(FilePath, KeyName, "")
if err != nil {
panic(err.Error())
}
// 转换类型
err = req.ClassSwitch(KeyName, "IA")
if err != nil {
log.Fatalf("文件存储类型转换失败,错误信息为:%s", err.Error())
}
log.Printf("文件存储类型转换成功")
}
低频转归档
示例:
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
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"log"
"net/http"
)
const (
ConfigFile = "./config.json"
FilePath = "test.txt" // 待上传的本地文件
KeyName = "test.txt" // 待转换的文件
)
func main() {
// 加载配置,创建请求
config, err := ufsdk.LoadConfig(ConfigFile)
if err != nil {
panic(err.Error())
}
header := make(http.Header)
header.Add("X-Ufile-Storage-Class", "IA")
req, err := ufsdk.NewFileRequestWithHeader(config, header, nil)
if err != nil {
panic(err.Error())
}
// 上传标准存储类型文件
err = req.PutFile(FilePath, KeyName, "")
if err != nil {
panic(err.Error())
}
// 转换类型
err = req.ClassSwitch(KeyName, "ARCHIVE")
if err != nil {
log.Fatalf("文件存储类型转换失败,错误信息为:%s", err.Error())
}
log.Printf("文件存储类型转换成功")
}
标准转归档
示例:
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
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"log"
"net/http"
)
const (
ConfigFile = "config.json"
FilePath = "FakeSmallFile.txt"
KeyName = "FakeSmallFile.txt"
)
func main() {
// 加载配置,创建请求
config, err := ufsdk.LoadConfig(ConfigFile)
if err != nil {
panic(err.Error())
}
header := make(http.Header)
header.Add("X-Ufile-Storage-Class", "STANDARD")
req, err := ufsdk.NewFileRequestWithHeader(config, header, nil)
if err != nil {
panic(err.Error())
}
// 上传标准存储类型文件
err = req.PutFile(FilePath, KeyName, "")
if err != nil {
panic(err.Error())
}
// 转换类型
err = req.ClassSwitch(KeyName, "ARCHIVE")
if err != nil {
log.Fatalf("文件存储类型转换失败,错误信息为:%s", err.Error())
}
log.Printf("文件存储类型转换成功")
}
PREVIOUS比较本地文件和远程文件etag
NEXT获取文件基本信息