SDK 提供GetObjectAcl
方法用于查询文件的访问控制权限,提供PutObjectAcl
方法用于设置文件的访问控制权限,完整代码详见 Github。
说明
- 当前支持设置的文件访问权限模式有:default:继承bucketacl,public-read:公共读
代码示例
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"
)
const (
FilePath = "./FakeSmallFile.txt"
ConfigFile = "config.json"
FileKey = "test_acl.txt"
)
func main() {
log.SetFlags(log.Lshortfile)
config, err := ufsdk.LoadConfig(ConfigFile)
if err != nil {
panic(err.Error())
}
req, err := ufsdk.NewFileRequest(config, nil)
if err != nil {
panic(err.Error())
}
//1、上传文件
log.Println("正在上传文件。。。。")
err = req.MPut(FilePath, FileKey, "")
if err != nil {
log.Println("文件上传失败,失败原因:", err.Error())
return
}
log.Println("文件上传成功。")
//2、设置acl, default:继承Bucket ACL,public-read:公共读
log.Println("正在设置文件acl。。。。")
acl := "public-read"
err = req.PutObjectAcl(FileKey, acl)
if err != nil {
log.Fatalln("设置文件acl失败,失败原因:", err.Error())
return
}
log.Println("设置文件acl成功:%s", acl)
//3、获取acl
log.Println("正在获取文件acl。。。。")
acl, err = req.GetObjectAcl(FileKey)
if err != nil {
log.Fatalln("获取文件acl失败,失败原因:", err.Error())
return
}
log.Println("获取文件acl:%s", acl)
}
错误码
HTTP 状态码 | RetCode | ErrMsg | 描述 |
---|---|---|---|
400 | -148653 | bucket not exists | 存储空间不存在 |
401 | -148643 | no authorization found | 上传凭证错误 |
403 | -148643 | invalid signature | API公私钥错误或者KeyName包含%、#、? |
404 | -148654 | file not exist | 源文件不存在 |
PREVIOUS文件解冻