生成带授权信息的URL
功能说明
通过访问密钥、请求方法类型、请求参数等信息生成一个在Query参数中携带鉴权信息的URL,以对OBS服务进行特定操作。
方法定义
ObsClient.createSignedUrlSync
请求参数
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
| Method | String | 必选 | HTTP方法类型,支持的值:
|
| Bucket | String | 可选 | 桶名。 |
| Key | String | 可选 | 对象名。 |
| SpecialParam | String | 可选 | 特殊操作符,代表要访问的子资源,详情参见SubResourceType。 |
| Expires | Number | 可选 | 带授权信息的URL的过期时间(单位:秒),默认值:300。 |
| Headers | Object | 可选 | 请求中携带的头域。 |
| QueryParams | Object | 可选 | 请求中携带的查询参数。 |
| 常量值 | 适用接口 |
|---|---|
| storagePolicy | 设置/获取桶存储类型。 |
| quota | 设置/获取桶配额。 |
| storageinfo | 获取桶存量信息。 |
| location | 获取桶区域位置。 |
| acl | 设置/获取桶ACL、设置/获取对象ACL。 |
| policy | 设置/获取/删除桶策略。 |
| cors | 设置/获取/删除桶CORS配置。 |
| versioning | 设置/获取桶多版本状态。 |
| website | 设置/获取/删除桶Website配置。 |
| logging | 设置/获取桶日志管理配置。 |
| lifecycle | 设置/获取/删除桶生命周期配置。 |
| notification | 设置/获取桶时间通知配置。 |
| tagging | 设置/获取/删除桶标签。 |
| delete | 批量删除对象。 |
| versions | 列举桶内多版本对象。 |
| uploads | 列举桶内分段上传任务、初始化分段上传任务。 |
| restore | 恢复归档或深度归档存储对象。 |
返回结果
| 字段名 | 类型 | 说明 |
|---|---|---|
| SignedUrl | String | 带授权信息的URL。 |
| ActualSignedRequestHeaders | Object | 通过带授权信息的URL发起请求时实际应携带的头域。 |
代码样例
// 生成上传对象的带授权信息的URL
var putObjectResult = obsClient.createSignedUrlSync({Method : 'PUT', Bucket : 'bucketname', Key : 'objectkey', Headers : {'Content-Type' : 'text/plain'}});
console.log('SignedUrl-->' + putObjectResult['SignedUrl']);
console.log('ActualSignedRequestHeaders-->' + JSON.stringify(putObjectResult['ActualSignedRequestHeaders']));
// 生成设置对象ACL的带授权信息的URL
var setObjectAclResult = obsClient.createSignedUrlSync({Method : 'PUT', Bucket : 'bucketname', Key : 'objectkey', SpecialParam: 'acl', Headers: {'x-amz-acl' : 'public-read'}});
console.log('SignedUrl-->' + setObjectAclResult['SignedUrl']);
console.log('ActualSignedRequestHeaders-->' + JSON.stringify(setObjectAclResult['ActualSignedRequestHeaders']));
// 生成下载对象的带授权信息的URL
var getObjectResult = obsClient.createSignedUrlSync({Method : 'GET', Bucket : 'bucketname', Key : 'objectkey'});
console.log('SignedUrl-->' + getObjectResult['SignedUrl']);
console.log('ActualSignedRequestHeaders-->' + JSON.stringify(getObjectResult['ActualSignedRequestHeaders']));
// 生成删除对象的带授权信息的URL
var deleteObjectResult = obsClient.createSignedUrlSync({Method : 'DELETE', Bucket : 'bucketname', Key : 'objectkey'});
console.log('SignedUrl-->' + deleteObjectResult['SignedUrl']);
console.log('ActualSignedRequestHeaders-->' + JSON.stringify(deleteObjectResult['ActualSignedRequestHeaders']));