Skip to content

Commit 74db371

Browse files
committed
update csp doc
1 parent e05f6da commit 74db371

File tree

1 file changed

+76
-5
lines changed

1 file changed

+76
-5
lines changed

csp/api.md

+76-5
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ getAuthorization 计算完成后,callback 回传一个签名字符串或一个
106106
COS XML API 的请求里,私有资源操作都需要鉴权凭证 Authorization,用于判断当前请求是否合法。
107107

108108
鉴权凭证使用方式有两种:
109-
1. 放在 header 参数里使用,自断名: authorization
109+
1. 放在 header 参数里使用,字段名:authorization
110110
2. 放在 url 参数里使用,字段名:sign
111111

112112
COS.getAuthorization 方法用于计算鉴权凭证(Authorization),用以验证请求合法性的签名信息。
@@ -177,30 +177,60 @@ var authorization = cos.getAuth({
177177
返回值是计算得到的鉴权凭证字符串 authorization
178178

179179

180-
181-
182180
### Get Object Url
183181

184182
#### 使用示例
185183

186-
// 获取不带签名 Object Url
184+
// 示例一:获取不带签名 Object Url
187185
```js
188186
var url = cos.getObjectUrl({
189187
Key: '1.jpg',
190188
Sign: false
191189
});
192190
```
193191

194-
// 获取带签名的 Object Url
192+
// 示例二:获取带签名 Object Url
193+
```js
194+
var url = cos.getObjectUrl({
195+
Key: '1.jpg'
196+
});
197+
```
198+
199+
// 示例三:如果签名过程是异步获取,需要通过 callback 获取带签名 Url
195200
```js
196201
cos.getObjectUrl({
202+
Key: '1.jpg',
203+
Sign: false
204+
}, function (err, data) {
205+
console.log(err || data.Url);
206+
});
207+
```
208+
209+
// 示例四:获取预签名 Put Object 上传 Url
210+
```js
211+
cos.getObjectUrl({
212+
Method: 'PUT',
197213
Key: '1.jpg',
198214
Sign: true
199215
}, function (err, data) {
200216
console.log(err || data.Url);
201217
});
202218
```
203219

220+
// 示例五:获取文件 Url 并下载文件
221+
```js
222+
cos.getObjectUrl({
223+
Method: 'PUT',
224+
Key: '1.jpg',
225+
Sign: true
226+
}, function (err, data) {
227+
if (!err) {
228+
var downloadUrl = data.Url + (data.Url.indexOf('?') > -1 ? '&' : '?') + 'response-content-disposition=attachment'; // 补充强制下载的参数
229+
window.open(downloadUrl); // 这里是新窗口打开 url,如果需要在当前窗口打开,可以使用隐藏的 iframe 下载,或使用 a 标签 download 属性协助下载
230+
}
231+
});
232+
```
233+
204234
#### 参数说明
205235

206236
| 参数名 | 参数描述 | 类型 | 必填 |
@@ -232,6 +262,47 @@ function(err, data) { ... }
232262
| - Url | 计算得到的 Url | String |
233263

234264

265+
### 浏览器下载文件
266+
267+
浏览器下载文件需要先通过 cos.getObjectUrl 获取 url,在自行调用下载,以下提供几个下载例子
268+
269+
浏览器下载过程实际上是浏览器直接发起的 Get Object 请求,具体参数可以参考 cos.getObject 方法。
270+
271+
#### 使用示例
272+
273+
// 示例一:获取文件 Url 并下载文件
274+
```js
275+
cos.getObjectUrl({
276+
Method: 'PUT',
277+
Key: '1.jpg',
278+
Sign: true
279+
}, function (err, data) {
280+
if (!err) {
281+
var downloadUrl = data.Url + (data.Url.indexOf('?') > -1 ? '&' : '?') + 'response-content-disposition=attachment'; // 补充强制下载的参数
282+
window.open(downloadUrl); // 这里是新窗口打开 url,如果需要在当前窗口打开,可以使用隐藏的 iframe 下载,或使用 a 标签 download 属性协助下载
283+
}
284+
});
285+
```
286+
287+
// 示例二:通过隐藏 iframe 下载
288+
```html
289+
<iframe id="downloadTarget" style="width:0;height:0;" frameborder="0"></iframe>
290+
<a id="downloadLink" href="javascript:void(0)">下载</a>
291+
<script>
292+
document.getElementById('downloadLink').onclick = function () {
293+
document.getElementById('downloadTarget').src = downloadUrl; // 示例一里获取的下载 url
294+
};
295+
</script>
296+
```
297+
298+
// 示例三:通过隐藏 a 标签的 download 属性,download 属性不兼容低版本浏览器
299+
```html
300+
<iframe id="downloadTarget" style="width:0;height:0;" frameborder="0"></iframe>
301+
<!-- 把示例一里的 downloadUrl 放在以下 a 标签的 href 参数里 -->
302+
<a id="downloadLink" href="{downloadUrl}" download="1.jpg">下载</a>
303+
```
304+
305+
235306

236307
## Bucket 操作
237308

0 commit comments

Comments
 (0)