@@ -14,18 +14,26 @@ Qiniu-JavaScript-SDK
1414
1515Qiniu-JavaScript-SDK (下文简称为 JS-SDK)适用于 IE8+、Chrome、Firefox、Safari 等浏览器,基于七牛云存储官方 API 构建,其中上传功能基于 [ Plupload] ( http://www.plupload.com/ ) 插件封装。开发者基于 JS-SDK 可以方便的从浏览器端上传文件至七牛云存储,并对上传成功后的图片进行丰富的数据处理操作。
1616
17+ 不考虑兼容性的情况下,如手机端,建议直接使用 Formdata 结合七牛[ 表单上传] ( https://developer.qiniu.com/kodo/manual/form-upload ) 的方式上传文件。
18+
19+ [ Formdata 上传 demo ] ( http://jssdk.demo.qiniu.io/formdata )
20+
21+ ![ Formdata ] ( http://oky1vwhqm.bkt.clouddn.com/1486368013.png )
22+
1723Qiniu-JavaScript-SDK 为客户端 SDK,没有包含 token 生成实现,为了安全,token 建议通过网络从服务端获取,具体生成代码可以参考以下服务端 SDK 的文档。
1824
19- - [ Java] ( http://developer.qiniu.com/code/v7/sdk/android.html )
20- - [ PHP] ( http://developer.qiniu.com/code/v7/sdk/php.html )
21- - [ Python] ( http://developer.qiniu.com/code/v7/sdk/python.html )
22- - [ Ruby] ( http://developer.qiniu.com/code/v6/sdk/ruby.html )
23- - [ Go] ( http://developer.qiniu.com/code/v7/sdk/go.html )
24- - [ Node.js] ( http://developer.qiniu.com/code/v6/sdk/nodejs.html )
25- - [ C#] ( http://developer.qiniu.com/code/v6/sdk/csharp.html )
26- - [ C/C++] ( http://developer.qiniu.com/code/v6/sdk/cpp.html )
25+ - [ Android] ( https://developer.qiniu.com/kodo/sdk/android )
26+ - [ Java] ( https://developer.qiniu.com/kodo/sdk/java )
27+ - [ PHP] ( https://developer.qiniu.com/kodo/sdk/php )
28+ - [ Python] ( https://developer.qiniu.com/kodo/sdk/python )
29+ - [ Ruby] ( https://developer.qiniu.com/kodo/sdk/ruby )
30+ - [ Go] ( https://developer.qiniu.com/kodo/sdk/go )
31+ - [ Node.js] ( https://developer.qiniu.com/kodo/sdk/nodejs )
32+ - [ C#] ( https://developer.qiniu.com/kodo/sdk/csharp )
33+ - [ C/C++] ( https://developer.qiniu.com/kodo/sdk/cpp )
34+ - [ Objective-C] ( https://developer.qiniu.com/kodo/sdk/objc )
2735
28- Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js 服务器端 SDK ] ( http ://developer.qiniu.com/code/v6/ sdk/nodejs.html ) 开发的。
36+ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js 服务器端 SDK ] ( https ://developer.qiniu.com/kodo/ sdk/nodejs) 开发的。
2937
3038<!--
3139本 SDK 可使开发者忽略上传底层实现细节,而更多的关注 UI 层的展现。
@@ -77,14 +85,14 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
7785<a id =" usage " ></a >
7886### 准备
7987
80- - JS-SDK 的上传功能基于 [ Plupload] ( http://www.plupload.com/ ) 插件封装的,所以需要[ 下载 Plupload] ( http://plupload.com/download ) ,建议使用 2.1.1 版本 。
88+ - JS-SDK 的上传功能基于 [ Plupload] ( http://www.plupload.com/ ) 插件封装的,所以需要[ 下载 Plupload] ( http://plupload.com/download ) 。
8189 您也可以访问[ 开放静态文件 CDN ] ( http://staticfile.org/ ) ,搜索 plupload,使用 CDN 加速的静态文件地址。
8290
83- - 在使用 JS-SDK 之前,您必须先注册一个七牛帐号,并登录控制台获取一对有效的 AccessKey 和 SecretKey,您可以阅读[ 如何接入七牛 ] ( http ://developer.qiniu.com/article/ kodo/kodo-first/ quickstart.html ) 和[ 安全机制 ] ( http ://developer.qiniu.com/article/ kodo/kodo-developer/index.html #security) 以进一步了解如何正确使用和管理密钥 。
91+ - 在使用 JS-SDK 之前,您必须先注册一个七牛帐号,并登录控制台获取一对有效的 AccessKey 和 SecretKey,您可以阅读[ 快速入门 ] ( https ://developer.qiniu.com/kodo/manual/console- quickstart) 和[ 安全机制 ] ( https ://developer.qiniu.com/kodo/manual/security #security) 以进一步了解如何正确使用和管理密钥 。
8492
8593- JS-SDK 依赖服务端颁发 uptoken,可以通过以下二种方式实现:
86- - 利用[ 七牛服务端 SDK ] ( http ://developer.qiniu.com/resource/official.html #sdk) 构建后端服务
87- - 利用七牛底层 API 构建服务,详见七牛[ 上传策略] ( http ://developer.qiniu.com/article/developer/security/ put-policy.html ) 和[ 上传凭证] ( http ://developer.qiniu.com/article/developer/security/ upload-token.html )
94+ - 利用[ 七牛服务端 SDK ] ( https ://developer.qiniu.com/sdk #sdk) 构建后端服务
95+ - 利用七牛底层 API 构建服务,详见七牛[ 上传策略] ( https ://developer.qiniu.com/kodo/manual/ put-policy) 和[ 上传凭证] ( https ://developer.qiniu.com/kodo/manual/ upload-token)
8896
8997 后端服务应提供一个 URL 地址,供 JS-SDK 初始化使用,前端通过 Ajax 请求该地址后获得 uptoken。Ajax 请求成功后,服务端应返回如下格式的 json:
9098
@@ -174,6 +182,7 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
174182
175183 ```JavaScript
176184 var uploader = Qiniu.uploader({
185+ disable_statistics_report: false, // 禁止自动发送上传统计信息到七牛,默认允许发送
177186 runtimes: 'html5,flash,html4', // 上传模式,依次退化
178187 browse_button: 'pickfiles', // 上传选择的点选按钮,**必需**
179188 // 在初始化时,uptoken, uptoken_url, uptoken_func 三个参数中必须有一个被设置
@@ -189,8 +198,8 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
189198 // downtoken_url: '/downtoken',
190199 // Ajax请求downToken的Url,私有空间时使用,JS-SDK 将向该地址POST文件的key和domain,服务端返回的JSON必须包含`url`字段,`url`值为该文件的下载地址
191200 // unique_names: true, // 默认 false,key 为文件名。若开启该选项,JS-SDK 会为每个文件自动生成key(文件名)
192- // save_key: true, // 默认 false。若在服务端生成 uptoken 的上传策略中指定了 `sava_key `,则开启,SDK在前端将不对key进行任何处理
193- domain: '<Your bucket domain>', // bucket 域名,下载资源时用到,**必需**
201+ // save_key: true, // 默认 false。若在服务端生成 uptoken 的上传策略中指定了 `save_key `,则开启,SDK在前端将不对key进行任何处理
202+ domain: '<Your bucket domain>', // bucket 域名,下载资源时用到,如:'http://xxx.bkt.clouddn.com/' **必需**
194203 container: 'container', // 上传区域 DOM ID,默认是 browser_button 的父元素,
195204 max_file_size: '100mb', // 最大文件体积限制
196205 flash_swf_url: 'path/of/plupload/Moxie.swf', //引入 flash,相对路径
@@ -226,15 +235,15 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
226235 },
227236 'FileUploaded': function(up, file, info) {
228237 // 每个文件上传成功后,处理相关的事情
229- // 其中 info 是文件上传成功后,服务端返回的json,形式如
238+ // 其中 info.response 是文件上传成功后,服务端返回的json,形式如
230239 // {
231240 // "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
232241 // "key": "gogopher.jpg"
233242 // }
234243 // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html
235244
236245 // var domain = up.getOption('domain');
237- // var res = parseJSON(info);
246+ // var res = parseJSON(info.response );
238247 // var sourceLink = domain + res.key; 获取上传成功后的文件的Url
239248 },
240249 'Error': function(up, err, errTip) {
@@ -322,7 +331,7 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
322331
323332 ```
324333
325- 具体水印参数解释见[水印(watermark)](http ://developer.qiniu.com/docs/v6/ api/reference/fop/ image/ watermark.html )
334+ 具体水印参数解释见[水印(watermark)](https ://developer.qiniu.com/dora/ api/image-watermarking-processing- watermark)
326335
327336- imageView2
328337
@@ -337,7 +346,7 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
337346 }, key);
338347
339348 ```
340- 具体缩略参数解释见[图片处理 (imageView2)](http ://developer.qiniu.com/docs/v6/ api/reference/fop/image/ imageview2.html )
349+ 具体缩略参数解释见[图片基本处理 (imageView2)](https ://developer.qiniu.com/dora/ api/basic-processing-images- imageview2)
341350
342351- imageMogr2
343352
@@ -357,14 +366,14 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
357366
358367 ```
359368
360- 具体高级图像处理参数解释见[高级图像处理 (imageMogr2)](http ://developer.qiniu.com/docs/v6/ api/reference/fop/image/ imagemogr2.html )
369+ 具体高级图像处理参数解释见[图像高级处理 (imageMogr2)](https ://developer.qiniu.com/dora/ api/the-advanced-treatment-of-images- imagemogr2)
361370
362371- imageInfo
363372
364373 ```JavaScript
365374 var imageInfoObj = Qiniu.imageInfo(key);
366375 ```
367- 具体 imageInfo 解释见[图片基本信息(imageInfo)](http ://developer.qiniu.com/docs/v6/ api/reference/fop/image/ imageinfo.html )
376+ 具体 imageInfo 解释见[图片基本信息(imageInfo)](https ://developer.qiniu.com/dora/ api/pictures-basic-information- imageinfo)
368377
369378 Ajax跨域限制,IE系列此函数只支持IE10+
370379
@@ -374,7 +383,7 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
374383 var exifOjb = Qiniu.exif(key);
375384 ```
376385
377- 具体 exif 解释见[图片EXIF信息(exif)](http ://developer.qiniu.com/docs/v6/ api/reference/fop/image/ exif.html )
386+ 具体 exif 解释见[图片EXIF信息(exif)](https ://developer.qiniu.com/dora/ api/photo- exif-information-exif )
378387
379388 Ajax跨域限制,IE系列此函数只支持IE10+
380389
@@ -444,30 +453,30 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
444453
445454 ```
446455
447- 具体管道操作解释见[管道操作](http ://developer.qiniu.com/docs/v6/api/overview/fop/pipeline.html )
456+ 具体管道操作解释见[管道操作](https ://developer.qiniu.com/dora/manual/processing-mechanism )
448457
449458<a id="demo"></a>
450459### 运行示例
451460
452- 1. 进入项目根目录,执行 `make install` 安装依赖第三方库
461+ 1. 进入项目根目录,执行 `make install` 或 `npm install & bower install` 安装依赖第三方库
4534622. 进入 `demo` 目录,按照目录下的 `config.example` 示例,创建 `config.js` 文件,其中,`Access Key` 和 `Secret Key` 按如下方式获取
454463
455464 * [开通七牛开发者帐号](https://portal.qiniu.com/signup)
456- * [登录七牛开发者自助平台,查看 AccessKey 和 SecretKey](https://portal.qiniu.com/setting /key) 。
465+ * [登录七牛开发者自助平台,查看 AccessKey 和 SecretKey](https://portal.qiniu.com/user /key) 。
457466
458467 ```javascript
459468
460469 module.exports = {
461- 'ACCESS_KEY ': '<Your Access Key>',
462- 'SECRET_KEY ': '<Your Secret Key>',
463- 'Bucket_Name ': '<Your Bucket Name>',
470+ 'AccessKey ': '<Your Access Key>',
471+ 'SecretKey ': '<Your Secret Key>',
472+ 'Bucket ': '<Your Bucket Name>',
464473 'Port': 19110,
465- 'Uptoken_Url ': '<Your Uptoken_Url>', // demo 启动后会在本地 /uptoken 上提供获取 uptoken 的接口,所以这里可以填 'uptoken'
466- 'Domain': '<Your Bucket Domain>'
474+ 'UptokenUrl ': '<Your Uptoken_Url>', // demo 启动后会在本地 /uptoken 上提供获取 uptoken 的接口,所以这里可以填 'uptoken'
475+ 'Domain': '<Your Bucket Domain>' // Bucket 的外链默认域名,在 Bucket 的内容管理里查看,如:'http://xxx.bkt.clouddn.com/'
467476 }
468477
469478 ```
470- 3. 进入项目根目录,执行 `make dev` 访问 `http://127.0.0.1:19110/` 或 `http://localhost:19110/`
479+ 3. 进入项目根目录,执行 `make dev` 或 `node demo/server.js` 访问命令行打印出的 demo 地址。
471480
472481<a id="note"></a>
473482### 说明
@@ -476,14 +485,14 @@ Qiniu-JavaScript-SDK 的示例 Demo 中的服务器端部分是基于[ Node.js
476485
4774862. JS-SDK 依赖 uptoken,可以直接设置 `uptoken` 、通过提供 Ajax 请求地址 `uptoken_url` 或者通过提供一个能够返回 uptoken 的函数 `uptoken_func` 实现。
478487
479- 3. 如果您想了解更多七牛的上传策略,建议您仔细阅读 [七牛官方文档-上传](http ://developer.qiniu.com/code/v6/api/kodo-api/index.html#up )。
488+ 3. 如果您想了解更多七牛的上传策略,建议您仔细阅读 [七牛官方文档-上传](https ://developer.qiniu.com/kodo/manual/upload-types )。
480489 另外,七牛的上传策略是在后端服务指定的,JS-SDK 的 setOption API 只是设置 Plupload 的初始化参数,和上传策略无关。
481490
482- 4. 如果您想了解更多七牛的图片处理,建议您仔细阅读 [七牛官方文档-图片处理](http ://developer.qiniu.com/code/v6/ api/kodo- api/index.html#image )
491+ 4. 如果您想了解更多七牛的图片处理,建议您仔细阅读 [七牛官方文档-图片处理](https ://developer.qiniu.com/dora/ api/image-processing- api)
483492
4844935. 如果是 https 网站,上传地址为 https://up.qbox.me 否则使用 http://upload.qiniu.com
485494
486- 6. JS-SDK 示例生成 uptotken 时,指定的 `Bucket Name` 为公开空间,所以可以公开访问上传成功后的资源。若您生成 uptoken 时,指定的 `Bucket Name` 为私有空间,那您还需要在服务端进行额外的处理才能访问您上传的资源。具体参见[下载凭证](http ://developer.qiniu.com/article/developer/security/ download-token.html )。JS-SDK 数据处理部分功能不适用于私有空间。
495+ 6. JS-SDK 示例生成 uptotken 时,指定的 `Bucket Name` 为公开空间,所以可以公开访问上传成功后的资源。若您生成 uptoken 时,指定的 `Bucket Name` 为私有空间,那您还需要在服务端进行额外的处理才能访问您上传的资源。具体参见[下载凭证](https ://developer.qiniu.com/kodo/manual/ download-token)。JS-SDK 数据处理部分功能不适用于私有空间。
487496
488497<a id="faq"></a>
489498### 常见问题
@@ -781,7 +790,7 @@ $(function() {
781790
782791 <a class="btn btn-default btn-lg " id="up_load" style="width:160px" href="#" >
783792 <span>确认上传</span>
784- </a>
793+ </a>
785794
786795 <a class="btn btn-default btn-lg " id="stop_load" style="width:160px" href="#" >
787796 <span>暂停上传</span>
@@ -796,7 +805,7 @@ $(function() {
796805
797806 <a class="btn btn-default btn-lg " id="up_load2" style="width:160px" href="#" >
798807 <span>确认上传</span>
799- </a>
808+ </a>
800809
801810 <a class="btn btn-default btn-lg " id="stop_load2" style="width:160px" href="#" >
802811 <span>暂停上传</span>
@@ -822,8 +831,6 @@ $(function() {
822831<a id="license"></a>
823832### 许可证
824833
825- > Copyright (c) 2014 qiniu.com
826-
827- ### 基于 GPL V2 协议发布:
834+ > Copyright (c) 2017 qiniu.com
828835
829- > [www.gnu.org/licenses/gpl-2.0.html](http://www.gnu.org/licenses/gpl-2.0.html)
836+ ### 基于 MIT 协议发布
0 commit comments