文档首页/ OBS BrowserJS SDK/ API参考/ 其他接口/ 生成带授权信息的URL
更新时间:2024-09-12 GMT+08:00
分享

生成带授权信息的URL

功能说明

通过访问密钥、请求方法类型、请求参数等信息生成一个在Query参数中携带鉴权信息的URL,以对OBS服务进行特定操作。

方法定义

ObsClient.createSignedUrlSync

请求参数

表1 参数列表

字段名

类型

约束

说明

Method

String

必选

HTTP方法类型,支持的值:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD

Bucket

String

可选

桶名。

Key

String

可选

对象名。

SpecialParam

String

可选

特殊操作符,代表要访问的子资源,详情参见SubResourceType

Expires

Number

可选

带授权信息的URL的过期时间(单位:秒),默认值:300。

Headers

Object

可选

请求中携带的头域。

QueryParams

Object

可选

请求中携带的查询参数。

表2 SubResourceType

常量值

适用接口

storagePolicy

设置/获取桶存储类型。

quota

设置/获取桶配额。

storageinfo

获取桶存量信息。

location

获取桶区域位置。

acl

设置/获取桶ACL、设置/获取对象ACL。

policy

设置/获取/删除桶策略。

cors

设置/获取/删除桶CORS配置。

versioning

设置/获取桶多版本状态。

website

设置/获取/删除桶Website配置。

logging

设置/获取桶日志管理配置。

lifecycle

设置/获取/删除桶生命周期配置。

notification

设置/获取桶时间通知配置。

tagging

设置/获取/删除桶标签。

delete

批量删除对象。

versions

列举桶内多版本对象。

uploads

列举桶内分段上传任务、初始化分段上传任务。

restore

恢复归档或深度归档存储对象。

返回结果

表3 返回结果

字段名

类型

说明

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']));

相关文档