SDK 提供DeleteFile
方法用以删除文件,完整代码详见 Github。
DeleteFile
方法请求的 US3 API 为 DeleteFile,具体详见DeleteFile API文档。
删除单个文件
示例如下:
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
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"log"
)
const (
ConfigFile = "config.json"
KeyName = "FakeSmallFile.txt" // 删除key为KeyName 的文件
)
func main() {
// 加载配置,创建请求
config, err := ufsdk.LoadConfig(ConfigFile)
if err != nil {
panic(err.Error())
}
req, err := ufsdk.NewFileRequest(config, nil)
if err != nil {
panic(err.Error())
}
// 删除一个文件
err = req.DeleteFile(KeyName)
if err != nil {
log.Fatalf("删除文件 %s 失败,错误信息为:%s", KeyName, err.Error())
}
log.Println("删除文件成功")
}
删除指定目录下的文件
- 下面示例只删除指定目录下的文件,不包括目录;若要递归删除整个目录可指定前缀进行删除。
示例如下:
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
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"log"
)
const (
ConfigFile = "config.json"
DeletedDir = "" // 非递归要求 DeletedDir 以"/"结尾
)
func main() {
// 加载配置,创建请求
config, err := ufsdk.LoadConfig(ConfigFile)
if err != nil {
panic(err.Error())
}
req, err := ufsdk.NewFileRequest(config, nil)
if err != nil {
panic(err.Error())
}
// 删除指定目录下的文件(非递归)
Marker := ""
for ;; {
list, err := req.ListObjects(DeletedDir, Marker, "/", 0)
if err != nil {
log.Fatalf("获取文件列表失败,错误信息为:%s", err.Error())
}
for _, object := range list.Contents {
err = req.DeleteFile(object.Key)
if err != nil {
log.Fatalf("删除文件 %s 失败,错误信息为:%s", object.Key, err.Error())
}
}
Marker = list.NextMarker
if len(list.Contents) == 0 || len(list.NextMarker) <= 0{
break
}
}
}
删除指定前缀的文件
- 若指定
Prefix = ""
,将删除 Bucket 内所有文件,请谨慎操作。
示例如下:
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
package main
import (
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
"log"
)
const (
ConfigFile = ""
Prefix = ""
)
func main() {
// 加载配置,创建请求
config, err := ufsdk.LoadConfig(ConfigFile)
if err != nil {
panic(err.Error())
}
req, err := ufsdk.NewFileRequest(config, nil)
if err != nil {
panic(err.Error())
}
// 删除带有 Prefix 的文件(递归, Prefix为空将删除 Bucket 所有文件)
Marker := ""
for ;; {
list, err := req.ListObjects(Prefix, Marker, "", 0)
if err != nil {
log.Fatalf("获取文件列表失败,错误信息为:%s", err.Error())
}
for _, object := range list.Contents {
err = req.DeleteFile(object.Key)
if err != nil {
log.Fatalf("删除文件 %s 失败,错误信息为:%s", object.Key, err.Error())
}
}
Marker = list.NextMarker
if len(list.Contents) == 0 || len(list.NextMarker) <= 0{
break
}
}
log.Printf("成功删除前缀为 %s 的文件", Prefix)
}
错误码
HTTP 状态码 | RetCode | ErrMsg | 描述 |
---|---|---|---|
400 | -148653 | bucket not exists | 存储空间不存在 |
400 | -15036 | check md5 failed | MD5校验失败 |
401 | -148643 | no authorization found | 上传凭证错误 |
403 | -148643 | invalid signature | API公私钥错误 |
404 | -148654 | file not exist | 文件不存在 |