using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Auth.Sts;
using Aliyun.Acs.Core.Http;
using Aliyun.Acs.Core.Profile;
using Furion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace FlexJobApi.Core
{
///
/// 阿里云OSS工具
///
public static class AliyunOSSUtils
{
public static GetAliyunOSSAcsQueryResult GetOSSAcs()
{
var options = App.GetOptions().OSS;
IClientProfile profile = DefaultProfile.GetProfile(options.RegionId, options.AccessKeyId, options.AccessSecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
AssumeRoleRequest request = new AssumeRoleRequest();
request.Method = MethodType.POST;
request.RoleArn = options.RoleArn;
request.RoleSessionName = options.RoleSessionName;
request.Policy = options.Policy;
request.DurationSeconds = options.DurationSeconds;
AssumeRoleResponse response = client.GetAcsResponse(request);
var result = new GetAliyunOSSAcsQueryResult()
{
Expiration = response.Credentials.Expiration,
OssAccessKeyId = response.Credentials.AccessKeyId,
OssAccessSecret = response.Credentials.AccessKeySecret,
SecurityToken = response.Credentials.SecurityToken,
RequestId = response.RequestId
};
return result;
}
}
}