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
|
{
|
/// <summary>
|
/// 阿里云OSS工具
|
/// </summary>
|
public static class AliyunOSSUtils
|
{
|
public static GetAliyunOSSAcsQueryResult GetOSSAcs()
|
{
|
var options = App.GetOptions<AliyunOptions>().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;
|
}
|
}
|
}
|