@@ -106,7 +106,7 @@ getAuthorization 计算完成后,callback 回传一个签名字符串或一个
106
106
COS XML API 的请求里,私有资源操作都需要鉴权凭证 Authorization,用于判断当前请求是否合法。
107
107
108
108
鉴权凭证使用方式有两种:
109
- 1 . 放在 header 参数里使用,自断名: authorization
109
+ 1 . 放在 header 参数里使用,字段名: authorization
110
110
2 . 放在 url 参数里使用,字段名:sign
111
111
112
112
COS.getAuthorization 方法用于计算鉴权凭证(Authorization),用以验证请求合法性的签名信息。
@@ -177,30 +177,60 @@ var authorization = cos.getAuth({
177
177
返回值是计算得到的鉴权凭证字符串 authorization
178
178
179
179
180
-
181
-
182
180
### Get Object Url
183
181
184
182
#### 使用示例
185
183
186
- // 获取不带签名 Object Url
184
+ // 示例一: 获取不带签名 Object Url
187
185
``` js
188
186
var url = cos .getObjectUrl ({
189
187
Key: ' 1.jpg' ,
190
188
Sign: false
191
189
});
192
190
```
193
191
194
- // 获取带签名的 Object Url
192
+ // 示例二:获取带签名 Object Url
193
+ ``` js
194
+ var url = cos .getObjectUrl ({
195
+ Key: ' 1.jpg'
196
+ });
197
+ ```
198
+
199
+ // 示例三:如果签名过程是异步获取,需要通过 callback 获取带签名 Url
195
200
``` js
196
201
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' ,
197
213
Key: ' 1.jpg' ,
198
214
Sign: true
199
215
}, function (err , data ) {
200
216
console .log (err || data .Url );
201
217
});
202
218
```
203
219
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
+
204
234
#### 参数说明
205
235
206
236
| 参数名 | 参数描述 | 类型 | 必填 |
@@ -232,6 +262,47 @@ function(err, data) { ... }
232
262
| - Url | 计算得到的 Url | String |
233
263
234
264
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
+
235
306
236
307
## Bucket 操作
237
308
0 commit comments