Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 51 additions & 36 deletions Docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ SDK下载地址:[https://github.com/qiniu/csharp-sdk/tags](https://github.com/
**云存储接口**

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

### 1. 新建资源表

新建资源表的意义在于,您可以将所有上传的资源分布式加密存储在七牛云存储服务端后还能保持相应的完整映射索引。

// 首先定义资源表名
string tableName = "tableName";

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

// 签名认证完成后,即可使用该认证来新建资源表
RSService rs = new RSService(conn, tableName);


<a name="rs-PutAuth"></a>

### 2. 获得上传授权

客户端上传文件之前需要取得上传授权。所谓上传授权,就是获得一个可匿名直传的临时有效URL。实例代码如下:

// 调用资源表对象的 putAuth() 方法来获得上传授权
PutAuthRet putAuthRet = rs.PutAuth();


如果请求成功,putAuthRet 会包含 Url 和 Expires 两个字段。Url 字段对应的值为匿名上传的临时URL,Expires 对应的值则是该临时URL的有效期。
CallRet callRet = rs.MkBucket();

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

### 3. 上传文件
### 2. 上传文件

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

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

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

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

##### 2. 客户端上传
<a name="client-PutFile"></a>

##### 2.2 客户端使用授权URL上传

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

// 在客户端上传文件之前,需要获得上传授权,得到经过授权的临时URL
客户端上传文件之前需要取得上传授权,可以是一个临时有效URL。

// 调用资源表对象的 putAuth() 方法来获取授权的临时URL
PutAuthRet putAuthRet = rs.PutAuth();
uploadUrl = putAuthRet.Url;

如果请求成功,putAuthRet 会包含 Url 和 Expires 两个字段。Url 字段对应的值为匿名上传的临时 URL,Expires 对应的值则是该临时 URL 的有效期。

###### 2.2.2 使用临时URL上传文件

// 通过该临时 URL 进行文件上传
PutFileRet putFileRet = RSClient.PutFile(uploadUrl, tableName, key, mimeType,
filePath, customMeta, callbackParam);

<a name="client-PutFileWithUpToke"></a>

##### 2.3 客户端使用UpToken上传

###### 2.3.1 生成用于上传文件的临时凭证UpToken

客户端上传文件之前需要取得上传授权,可以一个 UpToken,UpToken 是服务器端颁发给客户端的上传凭证,参数 expires 对应的值则是该 UpToken 的有效期。

// 生成 UpToken
var authPolicy = new AuthPolicy(tabletName, expires);
string upToken = authPolicy.MakeAuthTokenString();

###### 2.3.2 使用UpToken上传文件

// 使用 UpToken 上传文件
PutFileRet putFileRet = RSClient.PutFileWithUpToken(
upToken, tableName, key, mimeType,
filePath, customMeta, callbackParam);

<a name="rs-Stat"></a>

### 4. 获取已上传文件信息
### 3. 获取已上传文件信息

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

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

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

### 5. 下载文件
### 4. 下载文件

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

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

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

### 6. 发布公开资源
### 5. 发布公开资源

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

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

// 公开发布某个资源表
PublishRet publishRet = rs.Publish(DomainName);
CallRet publishRet = rs.Publish(DomainName);

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

### 7. 取消资源发布
### 6. 取消资源发布

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

// 取消公开发布某个资源表
PublishRet unpublishRet = rs.Unpublish(DomainName);
CallRet unpublishRet = rs.Unpublish(DomainName);

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

### 8. 删除已上传的文件
### 7. 删除已上传的文件

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

// 删除资源表中的某个文件
DeleteRet deleteRet = rs.Delete(key);
CallRet deleteRet = rs.Delete(key);

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

### 9. 删除整张资源表
### 8. 删除整张资源表

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

// 删除整个资源表
DropRet dropRet = rs.Drop();
CallRet dropRet = rs.Drop();
Loading