Closed AkashiX closed 7 years ago
const ALY = require('aliyun-sdk');
// 构建一个 Aliyun Client, 用于发起请求
// 构建Aliyun Client时需要设置AccessKeyId和AccessKeySevcret
// STS是Global Service, API入口位于华东 1 (杭州) , 这里使用sts API的主地址
const sts = new ALY.STS({
accessKeyId: 'XXX',
secretAccessKey: 'XXX',
endpoint: 'http://oss-cn-shanghai.aliyuncs.com',
apiVersion: '2015-04-01',
});
module.exports = app => {
class SdkController extends app.Controller {
* getStsToken() {
// 构造AssumeRole请求
const result = sts.assumeRole({
Action: 'AssumeRole',
// 指定角色Arn
RoleArn: 'acs:ram::XXX:role/ramtestappwrite',
// 设置Token的附加Policy,可以在获取Token时,通过额外设置一个Policy进一步减小Token的权限;
Policy: '{"Version":"1","Statement":[{"Effect":"Allow","Action":["oss:PutObject"],"Resource":["acs:oss:*:*:ram-test-app","acs:oss:*:*:XXX-XXX-XXX/*"]}]}',
// 设置Token有效期,可选参数,默认3600秒;
DurationSeconds: 3600,
RoleSessionName: 'usr002',
}, function(err, res) {
console.log(err, res);
});
this.ctx.body = {
result,
};
}
}
return SdkController;
};
抱歉我们队sts的sdk也不太熟悉,你直接在阿里云官网上提交工单,工单会帮你找到他们的开发同学解决问题。
2017-04-20 14:02:27,961 ERROR 5960 [-/127.0.0.1/-/27ms GET /sdk/ststoken/get] nodejs.TypeError: Converting circular structure to JSON at JSON.stringify ()
at Object.respond (c:\Users\Yanzhi Mo\Desktop_my_case\sts-case\node_modules\koa\lib\application.js:230:15)
at handleResponse (c:\Users\Yanzhi Mo\Desktop_my_case\sts-case\node_modules\koa\lib\application.js:137:15)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)