SDK 提供Restore
方法用于解冻归档存储类型的文件,完整代码详见 Github。
Restore
方法请求的 US3 API 为 Restore,具体详见Restore API文档。
说明
- 文件解冻需要一定时间,一般在10s以内,解冻完成之前文件不可下载
- 可通过
HeadFile
方法查看解冻是否完成,若解冻成功,则返回的 Http Header 中包含 X-Ufile-Restore 信息
代码示例
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
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"log"
"net/http"
"time"
)
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", "ARCHIVE")
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.Restore(KeyName)
if err != nil {
log.Fatalf("解冻文件 %s 失败,错误信息为:%s", KeyName, err.Error())
}
// 文件解冻一般在10s以内
time.Sleep(time.Second * 10)
// 获取解冻后文件的基本信息
err = req.HeadFile(KeyName)
if err != nil {
log.Fatalf("获取文件基本信息失败,错误信息为:%s", err.Error())
}
if _, ok := req.LastResponseHeader["X-Ufile-Restore"]; ok {
log.Printf("文件解冻成功,内容为:%s", req.LastResponseHeader.Get("X-Ufile-Restore"))
}
}
错误码
HTTP 状态码 | RetCode | ErrMsg | 描述 |
---|---|---|---|
400 | -148653 | bucket not exists | 存储空间不存在 |
400 | -15036 | check md5 failed | MD5校验失败 |
401 | -148643 | no authorization found | 上传凭证错误 |
403 | -148643 | invalid signature | API公私钥错误或者KeyName包含%、#、? |
404 | -148654 | file not exist | 源文件不存在 |
400 | -148660 | storage class is not archive | 文件类型不是归档存储 |
PREVIOUS文件重命名