Skip to content

Commit

Permalink
修改 Readme
Browse files Browse the repository at this point in the history
  • Loading branch information
carsonxu committed Oct 23, 2017
1 parent db76da5 commit 75cb126
Showing 1 changed file with 57 additions and 17 deletions.
74 changes: 57 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,76 @@

## get started

1. 使用 SDK 需要浏览器支持HTML 5
2. 请您到https://console.qcloud.com/cos 获取您的 AppId、Bucket、Region、SecretId 和 SecretKey
3. 请您到https://console.qcloud.com/cos 针对您要操作的bucket进行跨域(CORS)设置,可以按照如下范例,修改允许的来源 Origin 和 Headers:
### 一、前期准备

![cors.png](./demo/cors.png)
1. 首先,JS SDk 需要浏览器支持基本的 HTML5 特性,以便支持 ajax 上传文件和计算文件 md5 值。
2. 到 (COS对象存储控制台)[https://console.qcloud.com/cos4] 创建存储桶,得到 Bucket(存储桶名称) 和 Region(地域名称)
3. 到 (控制台密钥管理)[https://console.qcloud.com/capi] 获取您的项目 SecretId 和 SecretKey
4. 配置 CORS 规则,配置例子如下图:

![cors](cors.png)

### 二、计算签名

由于签名计算放在前端会暴露 SecretId 和 SecretKey,我们把签名计算过程放在后端实现,前段通过 ajax 向后端获取签名结果,正式部署时请再后端加一层自己网站本身的权限检验。

这里提供 [PHP 和 NodeJS 的签名例子](https://github.com/tencentyun/cos-js-sdk-v5/blob/master/server/),其他语言,请参照对应的 [XML SDK](https://cloud.tencent.com/document/product/436/6474)

### 三、上传例子

1. 创建 test.html,填入下面的代码,修改里面的 Bucket 和 Region。
2. 部署好后端的签名服务,并修改 getAuthorization 里的签名服务地址
3. 把 test.html 放在 Web 服务器下,然后在浏览器访问页面,测试文件上传

```html
<input id="file-selector" type="file">
<script src="dist/cos-js-sdk-v5.min.js"></script>
<script>
var Bucket = 'test-1250000000';
var Region = 'ap-guangzhou';
// 初始化实例
var cos = new COS({
AppId: '1250000000',
getAuthorization: function (options, callback) {
// 异步获取签名
$.get('../server/auth.php', {
method: (options.method || 'get').toLowerCase(),
pathname: options.pathname || '/'
method: (options.Method || 'get').toLowerCase(),
pathname: '/' + (options.Key || '')
}, function (authorization) {
callback(authorization);
}, 'text');
}
});
// 分片上传
cos.sliceUploadFile({
Bucket: 'test',
Region: 'ap-guangzhou',
Key: '1.zip',
Body: file
}, function (err, data) {
console.log(err, data);
});
// 监听选文件
document.getElementById('file-selector').onchange = function () {
var file = this.files[0];
if (!file) return;
// 分片上传文件
cos.sliceUploadFile({
Bucket: Bucket,
Region: Region,
Key: file.name,
Body: file,
}, function (err, data) {
console.log(err, data);
});
};
</script>
```

[更多例子](demo/demo.js)

## webpack 引入方式

支持 webpack 打包的场景,可以用 npm 引入作为模块
```shell
npm i cos-js-sdk-v5 --save
```

## 其他文档和例子

[更多例子](demo/demo.js)
[完整文档](https://cloud.tencent.com/document/product/436/11459)

0 comments on commit 75cb126

Please sign in to comment.