Skip to content

Commit fd80a21

Browse files
新增gosdk objectacl使用文档 (#28)
1 parent d5ce9cd commit fd80a21

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

_data/navigation.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ go-sdk:
101101
url: /go-sdk/文件重命名.html
102102
- title: 文件解冻
103103
url: /go-sdk/文件解冻.html
104+
- title: 文件访问控制
105+
url: /go-sdk/文件访问控制.html
104106

105107

106108
python-sdk:
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
title: '文件访问控制'
3+
sidebar:
4+
nav: go-sdk
5+
---
6+
7+
SDK 提供`GetObjectAcl`方法用于查询文件的访问控制权限,提供`PutObjectAcl`方法用于设置文件的访问控制权限,完整代码详见 [Github](https://github.com/ufilesdk-dev/ufile-gosdk/blob/master/file.go)
8+
9+
> 说明
10+
> 1. 当前支持设置的文件访问权限模式有:default:继承bucketacl,public-read:公共读
11+
12+
### 代码示例
13+
14+
<div class="copyable" markdown="1">
15+
16+
{% highlight go linenos %}
17+
package main
18+
19+
import (
20+
ufsdk "github.com/ufilesdk-dev/ufile-gosdk"
21+
"log"
22+
)
23+
24+
const (
25+
FilePath = "./FakeSmallFile.txt"
26+
ConfigFile = "config.json"
27+
FileKey = "test_acl.txt"
28+
)
29+
30+
func main() {
31+
log.SetFlags(log.Lshortfile)
32+
config, err := ufsdk.LoadConfig(ConfigFile)
33+
if err != nil {
34+
panic(err.Error())
35+
}
36+
req, err := ufsdk.NewFileRequest(config, nil)
37+
if err != nil {
38+
panic(err.Error())
39+
}
40+
41+
//1、上传文件
42+
log.Println("正在上传文件。。。。")
43+
err = req.MPut(FilePath, FileKey, "")
44+
if err != nil {
45+
log.Println("文件上传失败,失败原因:", err.Error())
46+
return
47+
}
48+
log.Println("文件上传成功。")
49+
50+
//2、设置acl, default:继承Bucket ACL,public-read:公共读
51+
log.Println("正在设置文件acl。。。。")
52+
acl := "public-read"
53+
err = req.PutObjectAcl(FileKey, acl)
54+
if err != nil {
55+
log.Fatalln("设置文件acl失败,失败原因:", err.Error())
56+
return
57+
}
58+
log.Println("设置文件acl成功:%s", acl)
59+
60+
//3、获取acl
61+
log.Println("正在获取文件acl。。。。")
62+
acl, err = req.GetObjectAcl(FileKey)
63+
if err != nil {
64+
log.Fatalln("获取文件acl失败,失败原因:", err.Error())
65+
return
66+
}
67+
log.Println("获取文件acl:%s", acl)
68+
}
69+
70+
{% endhighlight %}
71+
</div>
72+
73+
### 错误码
74+
75+
| HTTP 状态码 | RetCode | ErrMsg | 描述 |
76+
| ----------- | ------- | ---------------------- | ----------------------------------- |
77+
| 400 | -148653 | bucket not exists | 存储空间不存在 |
78+
| 401 | -148643 | no authorization found | 上传凭证错误 |
79+
| 403 | -148643 | invalid signature | API公私钥错误或者KeyName包含%、#、? |
80+
| 404 | -148654 | file not exist | 源文件不存在 |
81+

0 commit comments

Comments
 (0)