11---
2- title : C# SDK
2+ layout : docs
3+ title : C# SDK 使用指南
34---
45
6+ # C# SDK 使用指南
57
68此 C# SDK 适用于.net framework>4.0版本,基于 [ 七牛云存储官方API] ( http://docs.qiniu.com/ ) 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。无论您的网络应用是一个网站程序,还是包括从云端(服务端程序)到终端(手持设备应用)的架构的服务或应用,通过七牛云存储及其 SDK,都能让您应用程序的终端用户高速上传和下载,同时也让您的服务端更加轻盈。
79
8- 目录
9- ----
10- - [ 1. 安装] ( #install )
11- - [ 2. 初始化] ( #setup )
12- - [2.1 配置密钥](#setup-key)
13- - [ 3. 资源管理接口] ( #rs-api )
14- - [3.1 查看单个文件属性信息](#rs-stat)
15- - [3.2 复制单个文件](#rs-copy)
16- - [3.3 移动单个文件](#rs-move)
17- - [3.4 删除单个文件](#rs-delete)
18- - [3.5 批量操作](#batch)
19- - [3.5.1 批量获取文件属性信息](#batch-stat)
20- - [3.5.2 批量复制文件](#batch-copy)
21- - [3.5.3 批量移动文件](#batch-move)
22- - [3.5.4 批量删除文件](#batch-delete)
23- - [ 4. 资源列表] ( #rsf-api )
24- - [ 5. 上传下载接口] ( #get-and-put-api )
25- - [5.1 上传授权](#token)
26- - [5.1.1 生成uptoken](#make-uptoken)
27- - [5.2 文件上传](#upload)
28- - [5.2.1 普通上传](#io-upload)
29- - [5.2.2 断点续上传](#resumable-io-upload)
30- - [5.3 文件下载](#io-download)
31- - [5.3.1 公有资源下载](#public-download)
32- - [5.3.2 私有资源下载](#private-download)
33- - [ 6. 数据处理接口] ( #fop-api )
34- - [6.1 图像](#fop-image)
35- - [6.1.1 查看图像属性](#fop-image-info)
36- - [6.1.2 查看图片EXIF信息](#fop-exif)
37- - [6.1.3 生成图片预览](#fop-image-view)
38- - [6.1.4 图片高级处理(缩略、裁剪、旋转、转化)](#fop-image-mogr)
39- - [6.1.5 图像水印接口](#fop-image-watermarker)
40- - [ 7. 贡献代码] ( #contribution )
41- - [ 8. 许可证] ( #license )
42-
43-
44- ----
10+ - [ 安装] ( #install )
11+ - [ 初始化] ( #setup )
12+ - [配置密钥](#setup-key)
13+ - [ 资源管理接口] ( #rs-api )
14+ - [查看单个文件属性信息](#rs-stat)
15+ - [复制单个文件](#rs-copy)
16+ - [移动单个文件](#rs-move)
17+ - [删除单个文件](#rs-delete)
18+ - [批量操作](#batch)
19+ - [批量获取文件属性信息](#batch-stat)
20+ - [批量复制文件](#batch-copy)
21+ - [批量移动文件](#batch-move)
22+ - [批量删除文件](#batch-delete)
23+ - [ 资源列表] ( #rsf-api )
24+ - [ 上传下载接口] ( #get-and-put-api )
25+ - [上传策略](#putpolicy)
26+ - [ 文件上传](#upload)
27+ - [普通上传](#io-upload)
28+ - [断点续上传](#resumable-io-upload)
29+ - [文件下载](#io-download)
30+ - [公有资源下载](#public-download)
31+ - [私有资源下载](#private-download)
32+ - [ 数据处理接口] ( #fop-api )
33+ - [图像](#fop-image)
34+ - [查看图像属性](#fop-image-info)
35+ - [查看图片EXIF信息](#fop-exif)
36+ - [生成图片预览](#fop-image-view)
37+ - [图片高级处理(缩略、裁剪、旋转、转化)](#fop-image-mogr)
38+ - [图像水印接口](#fop-image-watermark)
39+ - [ 贡献代码] ( #contribution )
40+ - [ 许可证] ( #license )
4541
4642<a name =install ></a >
47- ## 1. 安装
43+ ## 安装
4844下载:
4945
5046 git clone http://github.com/qiniu/csharp-sdk
@@ -63,8 +59,9 @@ DLL引用方式:
6359项目地址:[ http://json.codeplex.com ] ( http://json.codeplex.com ) 。
6460
6561<a name =setup-key ></a >
66- ### 2.1 配置密钥
62+ ### 配置密钥
6763
64+ 服务端使用。
6865
6966要接入七牛云存储,您需要拥有一对有效的 Access Key 和 Secret Key 用来进行签名认证。可以通过如下步骤获得:
7067
@@ -79,8 +76,27 @@ qiniu.conf.ACCESS_KEY = "<YOUR_APP_ACCESS_KEY>"
7976qiniu .conf .SECRET_KEY = " <YOUR_APP_SECRET_KEY>"
8077```
8178
79+ 或者,编译配置文件app .conf 或者web .conf 等文件,添加以下配置项:
80+
81+ ``` xml
82+ < appSettings >
83+ < add key = " USER_AGENT" value = " " / >
84+ < add key = " ACCESS_KEY" value = " " / >
85+ < add key = " SECRET_KEY" value = " " / >
86+ < add key = " RS_HOST" value = " " / >
87+ < add key = " UP_HOST" value = " " / >
88+ < add key = " RSF_HOST" value = " " / >
89+ < add key = " PREFETCH_HOST" value = " " / >
90+ < / appSettings >
91+ ```
92+
93+ 添加完成后,在程序启动的时候调用`Qiniu .Conf .Config .Init ()`进行初始化。
94+
8295< a name = rs - api >< / a >
83- ## 3. 资源管理接口
96+ ## 资源管理接口
97+
98+ 服务端使用。
99+
84100基本的数据结构定义:
85101
86102```c #
@@ -143,7 +159,7 @@ public class EntryPathPair
143159```
144160
145161< a name = rs - stat >< / a >
146- ### 3.1 查看单个文件属性信息
162+ ### 查看单个文件属性信息
147163
148164```c #
149165// example
@@ -155,7 +171,7 @@ using Qiniu.RS
155171/// <param name =" bucket" >七牛云存储空间名</param >
156172/// <param name =" key" >文件key</param >
157173public static void Stat (string bucket , string key )
158- {
174+ {
159175 RSClient client = new RSClient ();
160176 Entry entry = client .Stat (new EntryPath (bucket , key ));
161177 if (entry .OK )
@@ -174,7 +190,7 @@ public static void Stat(string bucket, string key)
174190```
175191
176192< a name = rs - copy >< / a >
177- ### 3.2 复制单个文件
193+ ### 复制单个文件
178194
179195```c #
180196// example
@@ -202,7 +218,7 @@ public static void Copy(string bucketSrc, string keySrc, string bucketDest, stri
202218```
203219
204220< a name = rs - move >< / a >
205- ### 3.3 移动单个文件
221+ ### 移动单个文件
206222
207223```c #
208224// example
@@ -233,7 +249,7 @@ public static void Move(string bucketSrc, string keySrc, string bucketDest, stri
233249```
234250
235251< a name = rs - delete >< / a >
236- ### 3.4 删除单个文件
252+ ### 删除单个文件
237253
238254```C #
239255// example
@@ -260,10 +276,10 @@ public static void Delete(string bucket, string key)
260276```
261277
262278< a name = batch >< / a >
263- ### 3.5 批量操作
279+ ### 批量操作
264280当您需要一次性进行多个操作时, 可以使用批量操作.
265281< a name = batch - stat >< / a >
266- #### 3.5.1 批量获取文件属性信息
282+ #### 批量获取文件属性信息
267283
268284```C #
269285// example
@@ -282,7 +298,7 @@ public static void BatchStat(string bucket, string[] keys)
282298```
283299
284300< a name = batch - copy >< / a >
285- #### 3.5.2 批量复制文件
301+ #### 批量复制文件
286302
287303```C #
288304// example
@@ -301,7 +317,7 @@ public static void BatchCopy(string bucket, string[] keys)
301317```
302318
303319< a name = batch - move >< / a >
304- #### 3.5.3 批量移动文件
320+ #### 批量移动文件
305321
306322```c #
307323// example
@@ -320,7 +336,7 @@ public static void BatchMove(string bucket, string[] keys)
320336```
321337
322338< a name = batch - delete >< / a >
323- #### 3.5.4 批量删除文件
339+ #### 批量删除文件
324340
325341```c #
326342// example
@@ -339,7 +355,10 @@ public static void BatchDelete(string bucket, string[] keys)
339355```
340356
341357< a name = rsf - api >< / a >
342- ## 4. 资源列表
358+ ## 资源列表
359+
360+ 服务端使用。
361+
343362资源列表接口允许用户列出空间下的所有文件信息。使用资源列表接口如果引入Qiniu .RSF 命名空间。
344363
345364```c #
@@ -365,26 +384,31 @@ public static void List (string bucket)
365384```
366385
367386<a name =get-and-put-api ></a >
368- ## 5. 上传下载接口
387+ ## 上传下载接口
388+
389+ 服务端或客户端使用。
369390
370- <a name =token ></a >
371- ### 5.1 上传下载授权
372- <a name =make-uptoken ></a >
373- #### 5.1.1 上传授权uptoken
374- uptoken是一个字符串,作为http协议Header的一部分(Authorization字段)发送到我们七牛的服务端,表示这个http请求是经过认证的。
391+ <a name =putpolicy ></a >
392+ ### 上传策略
393+
394+ PutPolicy类用于定制上传策略,关于上传策略完整的说明,请参考[ 上传策略(PutPolicy)] ( http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html ) 。
395+
396+ uptoken 实际上是用 AccessKey/SecretKey对上传策略进行数字签名的字符串,用于上传接口。
375397
376398``` c#
399+ string bucketName = " test" ;
377400PutPolicy put = new PutPolicy (bucketName );
378- put .Token ();
401+ string uptoken = put .Token ();
379402```
403+
380404
381405<a name =upload ></a >
382- ### 5.2 文件上传
406+ ### 文件上传
383407** 注意** :如果您只是想要上传已存在您电脑本地或者是服务器上的文件到七牛云存储,可以直接使用七牛提供的 [ qrsync] ( /tools/qrsync.html/ ) 上传工具。
384408文件上传有两种方式,一种是以普通方式直传文件,简称普通上传,另一种方式是断点续上传,断点续上传在网络条件很一般的情况下也能有出色的上传速度,而且对大文件的传输非常友好。
385409
386410<a name =io-upload ></a >
387- ### 5.2.1 普通上传
411+ ### 普通上传
388412普通上传的接口在 ` qiniu.io ` 里,如下:
389413
390414上传本地文件
@@ -399,7 +423,7 @@ put.Token();
399423public static void PutFile (string bucket , string key , string fname )
400424{
401425 var policy = new PutPolicy (bucket , 3600 );
402- string upToken = policy .Token ();
426+ string upToken = policy .Token ();
403427 PutExtra extra = new PutExtra { Bucket = bucket };
404428 IOClient client = new IOClient ();
405429 client .PutFinished += new EventHandler <PutRet >((o , ret ) => {
@@ -412,18 +436,16 @@ public static void PutFile(string bucket, string key, string fname)
412436 Console .WriteLine (" Failed to PutFile" );
413437 }
414438 });
415- client .PutFile (upToken , key , fname , extra );
439+ client .PutFile (upToken , key , fname , extra );
416440}
417441```
418442
419- 为防止在上传较大文件时发生GUI界面出现假死现像,c# SDK的内部被设计为异步上传模式,您可以通过注册client的PutFinished事件获取上传结果。该事件无论上传是否会成功,都会被触发。
420-
421443** 注意: key必须采用utf8编码,如使用非utf8编码访问七牛云存储将反馈错误**
422444
423445<a name =resumable-io-upload ></a >
424- ### 5.2.2 断点续上传
446+ ### 断点续上传
425447
426- 上传本地文件
448+ 上传本地文件,示例如下:
427449
428450``` c#
429451public static void ResumablePutFile (string bucket , string key , string fname )
@@ -461,15 +483,15 @@ public event EventHandler<PutNotifyErrorEvent> NotifyErr;
461483```
462484
463485<a name =io-download ></a >
464- ### 5.3 文件下载
486+ ### 文件下载
465487七牛云存储上的资源下载分为 公有资源下载 和 私有资源下载 。
466488
467489私有(private)是 Bucket(空间)的一个属性,一个私有 Bucket 中的资源为私有资源,私有资源不可匿名下载。
468490
469491新创建的空间(Bucket)缺省为私有,也可以将某个 Bucket 设为公有,公有 Bucket 中的资源为公有资源,公有资源可以匿名下载。
470492
471493<a name =public-download ></a >
472- #### 5.3.1 公有资源下载
494+ #### 公有资源下载
473495如果在给bucket绑定了域名的话,可以通过以下地址访问。
474496
475497 [GET] http://<domain>/<key>
@@ -479,7 +501,7 @@ public event EventHandler<PutNotifyErrorEvent> NotifyErr;
479501** 注意: key必须采用utf8编码,如使用非utf8编码访问七牛云存储将反馈错误**
480502
481503<a name =private-download ></a >
482- #### 5.3.2 私有资源下载
504+ #### 私有资源下载
483505私有资源必须通过临时下载授权凭证(downloadToken)下载,如下:
484506
485507 [GET] http://<domain>/<key>?e=<deadline>&token=<downloadToken>
@@ -497,17 +519,20 @@ public static void MakeGetToken(string domain, string key)
497519```
498520
499521<a name =fop-api ></a >
500- ## 6. 数据处理接口
522+ ## 数据处理接口
523+
524+ 服务端或客户端使用。
525+
501526七牛支持在云端对图像, 视频, 音频等富媒体进行个性化处理。使用数据处理接口需要引入Qiniu.FileOp命名空间。
502527
503528``` c#
504529using Qiniu .FileOp ;
505530```
506531
507532<a name =fop-image ></a >
508- ### 6.1 图像
533+ ### 图像
509534<a name =fop-image-info ></a >
510- ### 6.1.1 查看图像属性
535+ ### 查看图像属性
511536
512537``` c#
513538 string domain = " domain" ;
@@ -534,7 +559,7 @@ using Qiniu.FileOp;
534559```
535560
536561<a name =fop-exif ></a >
537- ### 6.1.2 查看图片EXIF信息
562+ ### 查看图片EXIF信息
538563
539564``` C#
540565 string exifURL = Exif .MakeRequest (url );
@@ -553,7 +578,7 @@ using Qiniu.FileOp;
553578
554579
555580<a name =fop-image-view ></a >
556- ### 6.1.3 生成图片预览
581+ ### 生成图片预览
557582
558583``` c#
559584 ImageView imageView = new ImageView { Mode = 0 , Width = 200 , Height = 200 , Quality = 90 , Format = " gif" };
@@ -563,7 +588,7 @@ using Qiniu.FileOp;
563588```
564589
565590<a name =fop-image-mogr ></a >
566- ### 6.1.4 图片高级处理(缩略、裁剪、旋转、转化)
591+ ### 图片高级处理(缩略、裁剪、旋转、转化)
567592
568593``` c#
569594 ImageMogrify imageMogr = new ImageMogrify
@@ -581,7 +606,7 @@ using Qiniu.FileOp;
581606```
582607
583608<a name =fop-image-watermark ></a >
584- ### 6.1.5 图像水印接口
609+ ### 图像水印接口
585610
586611``` c#
587612 // 文字水印
@@ -593,7 +618,7 @@ using Qiniu.FileOp;
593618```
594619
595620<a name =contribution ></a >
596- ## 7. 贡献代码
621+ ## 贡献代码
597622
5986231 . Fork
5996242 . 创建您的特性分支 (` git checkout -b my-new-feature ` )
@@ -602,7 +627,7 @@ using Qiniu.FileOp;
6026275 . 然后到 github 网站的该 ` git ` 远程仓库的 ` my-new-feature ` 分支下发起 Pull Request
603628
604629<a name =license ></a >
605- ## 8. 许可证
630+ ## 许可证
606631
607632Copyright (c) 2013 qiniu.com
608633
0 commit comments