Skip to content

Commit 02974ec

Browse files
committed
Merge pull request #6 from shijiayun/master
添加mkbucket和uptoken的上传及相应的文档
2 parents 32e12df + 510f538 commit 02974ec

30 files changed

+4285
-4284
lines changed

Docs/README.md

Lines changed: 51 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk/tags](https://github.com/
1818
**云存储接口**
1919

2020
- [新建资源表](#rs-NewService)
21-
- [获得上传授权](#rs-PutAuth)
2221
- [上传文件](#rs-PutFile)
22+
- [服务器端上传](#server-PutFile)
23+
- [客户端使用授权URL上传](#client-PutFile)
24+
- [客户端使用UpToken上传](#client-PutFileWithUpToke)
2325
- [获取已上传文件信息](#rs-Stat)
2426
- [下载文件](#rs-Get)
2527
- [发布公开资源](#rs-Publish)
@@ -61,8 +63,6 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk/tags](https://github.com/
6163

6264
### 1. 新建资源表
6365

64-
新建资源表的意义在于,您可以将所有上传的资源分布式加密存储在七牛云存储服务端后还能保持相应的完整映射索引。
65-
6666
// 首先定义资源表名
6767
string tableName = "tableName";
6868

@@ -71,48 +71,63 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk/tags](https://github.com/
7171

7272
// 签名认证完成后,即可使用该认证来新建资源表
7373
RSService rs = new RSService(conn, tableName);
74-
75-
76-
<a name="rs-PutAuth"></a>
77-
78-
### 2. 获得上传授权
79-
80-
客户端上传文件之前需要取得上传授权。所谓上传授权,就是获得一个可匿名直传的临时有效URL。实例代码如下:
81-
82-
// 调用资源表对象的 putAuth() 方法来获得上传授权
83-
PutAuthRet putAuthRet = rs.PutAuth();
84-
85-
86-
如果请求成功,putAuthRet 会包含 Url 和 Expires 两个字段。Url 字段对应的值为匿名上传的临时URL,Expires 对应的值则是该临时URL的有效期。
74+
CallRet callRet = rs.MkBucket();
8775

8876
<a name="rs-PutFile"></a>
8977

90-
### 3. 上传文件
78+
### 2. 上传文件
9179

9280
七牛云存储上传文件的方式分为服务器端上传和客户端上传两种。
9381

94-
##### 1. 服务器端上传
82+
<a name="server-PutFile"></a>
9583

96-
上传某个本地文件,示例代码如下:
84+
##### 2.1 服务器端上传
9785

9886
// 调用资源表对象的 PutFile() 方法进行文件上传
9987
PutFileRet putFileRet = rs.PutFile(key, mimeType, filePath, customMeta);
10088

101-
##### 2. 客户端上传
89+
<a name="client-PutFile"></a>
90+
91+
##### 2.2 客户端使用授权URL上传
10292

103-
因为服务器端已经在之前进行过签名认证持有相应的安全凭证,因此可以直接进行上传。而由于客户端并不持有对RS的安全凭证,所以需要获取上传授权,从而得到一个有上传权限的URL,参见[获得上传授权](#rs-PutAuth)。在获得上传授权URL后,就可以开始上传文件了,示例代码如下:
93+
###### 2.2.1 获取经过授权的临时URL
10494

105-
// 在客户端上传文件之前,需要获得上传授权,得到经过授权的临时URL
95+
客户端上传文件之前需要取得上传授权,可以是一个临时有效URL。
96+
97+
// 调用资源表对象的 putAuth() 方法来获取授权的临时URL
10698
PutAuthRet putAuthRet = rs.PutAuth();
10799
uploadUrl = putAuthRet.Url;
108100

101+
如果请求成功,putAuthRet 会包含 Url 和 Expires 两个字段。Url 字段对应的值为匿名上传的临时 URL,Expires 对应的值则是该临时 URL 的有效期。
102+
103+
###### 2.2.2 使用临时URL上传文件
104+
109105
// 通过该临时 URL 进行文件上传
110106
PutFileRet putFileRet = RSClient.PutFile(uploadUrl, tableName, key, mimeType,
111107
filePath, customMeta, callbackParam);
112108

109+
<a name="client-PutFileWithUpToke"></a>
110+
111+
##### 2.3 客户端使用UpToken上传
112+
113+
###### 2.3.1 生成用于上传文件的临时凭证UpToken
114+
115+
客户端上传文件之前需要取得上传授权,可以一个 UpToken,UpToken 是服务器端颁发给客户端的上传凭证,参数 expires 对应的值则是该 UpToken 的有效期。
116+
117+
// 生成 UpToken
118+
var authPolicy = new AuthPolicy(tabletName, expires);
119+
string upToken = authPolicy.MakeAuthTokenString();
120+
121+
###### 2.3.2 使用UpToken上传文件
122+
123+
// 使用 UpToken 上传文件
124+
PutFileRet putFileRet = RSClient.PutFileWithUpToken(
125+
upToken, tableName, key, mimeType,
126+
filePath, customMeta, callbackParam);
127+
113128
<a name="rs-Stat"></a>
114129

115-
### 4. 获取已上传文件信息
130+
### 3. 获取已上传文件信息
116131

117132
您可以调用资源表对象的 Stat() 方法并传入一个 Key 来获取指定文件的相关信息。
118133

@@ -128,9 +143,9 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk/tags](https://github.com/
128143

129144
<a name="rs-Get"></a>
130145

131-
### 5. 下载文件
146+
### 4. 下载文件
132147

133-
要下载一个文件,首先需要取得下载授权,所谓下载授权,就是取得一个临时合法有效的下载链接,只需传入相应的文件 Key 和下载要保存的文件名作为参数即可,示例代码如下:
148+
要下载一个文件,首先需要取得下载授权,所谓下载授权,就是取得一个临时合法有效的下载链接,只需传入相应的文件 Key 和下载要保存的文件名作为参数即可
134149

135150
// 下载资源表中的特定文件
136151
GetRet getRet = rs.Get(key, filename);
@@ -147,39 +162,39 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk/tags](https://github.com/
147162

148163
<a name="rs-Publish"></a>
149164

150-
### 6. 发布公开资源
165+
### 5. 发布公开资源
151166

152167
使用七牛云存储提供的资源发布功能,您可以将一个资源表里边的所有文件以静态链接可访问的方式公开发布到您自己的域名下。
153168

154-
要公开发布一个资源表里边的所有文件,只需调用该资源表对象的 Publish() 方法并传入域名作为参数即可。如下示例:
169+
要公开发布一个资源表里边的所有文件,只需调用该资源表对象的 Publish() 方法并传入域名作为参数即可。
155170

156171
// 公开发布某个资源表
157-
PublishRet publishRet = rs.Publish(DomainName);
172+
CallRet publishRet = rs.Publish(DomainName);
158173

159174
<a name="rs-Unpublish"></a>
160175

161-
### 7. 取消资源发布
176+
### 6. 取消资源发布
162177

163178
调用资源表对象的 Unpublish() 方法可取消该资源表内所有文件的静态外链。
164179

165180
// 取消公开发布某个资源表
166-
PublishRet unpublishRet = rs.Unpublish(DomainName);
181+
CallRet unpublishRet = rs.Unpublish(DomainName);
167182

168183
<a name="rs-Delete"></a>
169184

170-
### 8. 删除已上传的文件
185+
### 7. 删除已上传的文件
171186

172-
要删除指定的文件,只需调用资源表对象的 Delete() 方法并传入文件 key 作为参数即可。如下示例代码:
187+
要删除指定的文件,只需调用资源表对象的 Delete() 方法并传入文件 key 作为参数即可。
173188

174189
// 删除资源表中的某个文件
175-
DeleteRet deleteRet = rs.Delete(key);
190+
CallRet deleteRet = rs.Delete(key);
176191

177192
<a name="rs-Drop"></a>
178193

179-
### 9. 删除整张资源表
194+
### 8. 删除整张资源表
180195

181196
要删除整个资源表及该表里边的所有文件,可以调用资源表对象的 Drop() 方法。
182-
需慎重,这会删除整个表及其所有文件。如下示例代码:
197+
需慎重,这会删除整个表及其所有文件。
183198

184199
// 删除整个资源表
185-
DropRet dropRet = rs.Drop();
200+
CallRet dropRet = rs.Drop();

0 commit comments

Comments
 (0)