@@ -15,8 +15,10 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk](https://github.com/qiniu
1515**云存储接口**
1616
1717- [新建资源表](#rs-NewService)
18- - [获得上传授权](#rs-PutAuth)
1918- [上传文件](#rs-PutFile)
19+ - [服务器端上传](#server-PutFile)
20+ - [客户端使用授权URL上传](#client-PutFile)
21+ - [客户端使用UpToken上传](#client-PutFileWithUpToke)
2022- [获取已上传文件信息](#rs-Stat)
2123- [下载文件](#rs-Get)
2224- [发布公开资源](#rs-Publish)
@@ -58,8 +60,6 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk](https://github.com/qiniu
5860
5961# ## 1. 新建资源表
6062
61- 新建资源表的意义在于,您可以将所有上传的资源分布式加密存储在七牛云存储服务端后还能保持相应的完整映射索引。
62-
6363 // 首先定义资源表名
6464 string tableName = "tableName";
6565
@@ -68,48 +68,63 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk](https://github.com/qiniu
6868
6969 // 签名认证完成后,即可使用该认证来新建资源表
7070 RSService rs = new RSService(conn, tableName);
71-
72-
73- <a name="rs-PutAuth"></a>
74-
75- # ## 2. 获得上传授权
76-
77- 客户端上传文件之前需要取得上传授权。所谓上传授权,就是获得一个可匿名直传的临时有效URL。实例代码如下:
78-
79- // 调用资源表对象的 putAuth() 方法来获得上传授权
80- PutAuthRet putAuthRet = rs.PutAuth();
81-
82-
83- 如果请求成功,putAuthRet 会包含 Url 和 Expires 两个字段。Url 字段对应的值为匿名上传的临时URL,Expires 对应的值则是该临时URL的有效期。
71+ CallRet callRet = rs.MkBucket();
8472
8573<a name="rs-PutFile"></a>
8674
87- # ## 3 . 上传文件
75+ # ## 2 . 上传文件
8876
8977七牛云存储上传文件的方式分为服务器端上传和客户端上传两种。
9078
91- # #### 1. 服务器端上传
79+ <a name="server-PutFile"></a>
9280
93- 上传某个本地文件,示例代码如下:
81+ # #### 2.1 服务器端上传
9482
9583 // 调用资源表对象的 PutFile() 方法进行文件上传
9684 PutFileRet putFileRet = rs.PutFile(key, mimeType, filePath, customMeta);
97-
98- # #### 2. 客户端上传
99-
100- 因为服务器端已经在之前进行过签名认证持有相应的安全凭证,因此可以直接进行上传。而由于客户端并不持有对RS的安全凭证,所以需要获取上传授权,从而得到一个有上传权限的URL,参见[获得上传授权](#rs-PutAuth)。在获得上传授权URL后,就可以开始上传文件了,示例代码如下:
10185
102- // 在客户端上传文件之前,需要获得上传授权,得到经过授权的临时URL
86+ <a name="client-PutFile"></a>
87+
88+ # #### 2.2 客户端使用授权URL上传
89+
90+ # ##### 2.2.1 获取经过授权的临时URL
91+
92+ 客户端上传文件之前需要取得上传授权,可以是一个临时有效URL。
93+
94+ // 调用资源表对象的 putAuth() 方法来获取授权的临时URL
10395 PutAuthRet putAuthRet = rs.PutAuth();
10496 uploadUrl = putAuthRet.Url;
97+
98+ 如果请求成功,putAuthRet 会包含 Url 和 Expires 两个字段。Url 字段对应的值为匿名上传的临时 URL,Expires 对应的值则是该临时 URL 的有效期。
99+
100+ # ##### 2.2.2 使用临时URL上传文件
105101
106102 // 通过该临时 URL 进行文件上传
107103 PutFileRet putFileRet = RSClient.PutFile(uploadUrl, tableName, key, mimeType,
108104 filePath, customMeta, callbackParam);
109105
106+ <a name="client-PutFileWithUpToke"></a>
107+
108+ # #### 2.3 客户端使用UpToken上传
109+
110+ # ##### 2.3.1 生成用于上传文件的临时凭证UpToken
111+
112+ 客户端上传文件之前需要取得上传授权,可以一个 UpToken,UpToken 是服务器端颁发给客户端的上传凭证,参数 expires 对应的值则是该 UpToken 的有效期。
113+
114+ // 生成 UpToken
115+ var authPolicy = new AuthPolicy(tabletName, expires);
116+ string upToken = authPolicy.MakeAuthTokenString();
117+
118+ # ##### 2.3.2 使用UpToken上传文件
119+
120+ // 使用 UpToken 上传文件
121+ PutFileRet putFileRet = RSClient.PutFileWithUpToken(
122+ upToken, tableName, key, mimeType,
123+ filePath, customMeta, callbackParam);
124+
110125<a name="rs-Stat"></a>
111126
112- # ## 4 . 获取已上传文件信息
127+ # ## 3 . 获取已上传文件信息
113128
114129您可以调用资源表对象的 Stat() 方法并传入一个 Key 来获取指定文件的相关信息。
115130
@@ -125,9 +140,9 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk](https://github.com/qiniu
125140
126141<a name="rs-Get"></a>
127142
128- # ## 5 . 下载文件
143+ # ## 4 . 下载文件
129144
130- 要下载一个文件,首先需要取得下载授权,所谓下载授权,就是取得一个临时合法有效的下载链接,只需传入相应的文件 Key 和下载要保存的文件名作为参数即可,示例代码如下:
145+ 要下载一个文件,首先需要取得下载授权,所谓下载授权,就是取得一个临时合法有效的下载链接,只需传入相应的文件 Key 和下载要保存的文件名作为参数即可。
131146
132147 // 下载资源表中的特定文件
133148 GetRet getRet = rs.Get(key, filename);
@@ -144,39 +159,39 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk](https://github.com/qiniu
144159
145160<a name="rs-Publish"></a>
146161
147- # ## 6 . 发布公开资源
162+ # ## 5 . 发布公开资源
148163
149164使用七牛云存储提供的资源发布功能,您可以将一个资源表里边的所有文件以静态链接可访问的方式公开发布到您自己的域名下。
150165
151- 要公开发布一个资源表里边的所有文件,只需调用该资源表对象的 Publish() 方法并传入域名作为参数即可。如下示例:
166+ 要公开发布一个资源表里边的所有文件,只需调用该资源表对象的 Publish() 方法并传入域名作为参数即可。
152167
153168 // 公开发布某个资源表
154- PublishRet publishRet = rs.Publish(DomainName);
169+ CallRet publishRet = rs.Publish(DomainName);
155170
156171<a name="rs-Unpublish"></a>
157172
158- # ## 7 . 取消资源发布
173+ # ## 6 . 取消资源发布
159174
160175调用资源表对象的 Unpublish() 方法可取消该资源表内所有文件的静态外链。
161176
162177 // 取消公开发布某个资源表
163- PublishRet unpublishRet = rs.Unpublish(DomainName);
178+ CallRet unpublishRet = rs.Unpublish(DomainName);
164179
165180<a name="rs-Delete"></a>
166181
167- # ## 8 . 删除已上传的文件
182+ # ## 7 . 删除已上传的文件
168183
169- 要删除指定的文件,只需调用资源表对象的 Delete() 方法并传入文件 key 作为参数即可。如下示例代码:
184+ 要删除指定的文件,只需调用资源表对象的 Delete() 方法并传入文件 key 作为参数即可。
170185
171186 // 删除资源表中的某个文件
172- DeleteRet deleteRet = rs.Delete(key);
187+ CallRet deleteRet = rs.Delete(key);
173188
174189<a name="rs-Drop"></a>
175190
176- # ## 9 . 删除整张资源表
191+ # ## 8 . 删除整张资源表
177192
178193要删除整个资源表及该表里边的所有文件,可以调用资源表对象的 Drop() 方法。
179- 需慎重,这会删除整个表及其所有文件。如下示例代码:
194+ 需慎重,这会删除整个表及其所有文件。
180195
181196 // 删除整个资源表
182- DropRet dropRet = rs.Drop();
197+ CallRet dropRet = rs.Drop();
0 commit comments