private async Task <UpdateDomainRecordRequest> CheckIP() { //string ip = await IPHelper.GetIP_Amazon(logger); string ip = ""; UpdateDomainRecordRequest updateRequest = null; if (string.IsNullOrEmpty(ip)) { return(updateRequest); } try { //IAcsClient提供了两种类型的调用结果返回, 一种方式是通过调用doAction方法获取取得原始的api 调用结果, 即返回HttpResponse类型的结果. 示例代码如下: //HttpResponse httpResponse = client.doAction(describeCdnServiceRequest); //System.out.println(httpResponse.getUrl()); //System.out.println(new String(httpResponse.getContent())); //另一种方式, 通过调用 getAcsResponse 方法, 获取反序列化后的对象, 示例代码如下: var response = client.GetAcsResponse(request); var domainList = response.DomainRecords; if (domainList.Count == 2) { var domainRecord = domainList[0]; //logger.LogInformation("domain name:" + domainRecord.DomainName); //logger.LogInformation("domain type:" + domainRecord.Type + "\r\n" + "domain value:" + domainRecord.Value); if (domainRecord.Value != ip) { //logger.LogInformation("当前外网IP:" + ip + "\r\n" + "解析IP:" + domainRecord.Value); //logger.LogInformation("IP发生变化,开始修改域名解析..." + domainRecord.DomainName); updateRequest = new UpdateDomainRecordRequest(); updateRequest.RecordId = domainList[0].RecordId; updateRequest.RR = domainList[0].RR; updateRequest.Type = domainList[0].Type; updateRequest.Value = ip; } } else { throw new Exception($"域名数:{domainList.Count}"); } } catch (ServerException e) { //logger.LogError(e, e.Message); } catch (ClientException e) { //logger.LogError(e, e.Message); } return(updateRequest); }
/// <summary> /// 禁止某条流的推送,可以预设某个时刻将流恢复 /// </summary> /// <param name="userID"></param> /// <param name="minutes"></param> public string Forbid(string userID, int minutes) { ForbidLiveStreamRequest request = new ForbidLiveStreamRequest(); request.AppName = ConfigSetting.AppName; request.Product = _ProductName; request.DomainName = ConfigSetting.DomainName; request.AcceptFormat = Aliyun.Acs.Core.Http.FormatType.JSON; request.LiveStreamType = _LiveStreamType; request.StreamName = userID; request.ResumeTime = DateTime.UtcNow.AddMinutes(minutes).ToString(_UtcFormat); ForbidLiveStreamResponse response = _AcsClient.GetAcsResponse(request); return(GetString(response)); }
public bool sendMail(string emailaddress, string code) { SingleSendMailRequest request = new SingleSendMailRequest(); try { request.AccountName = myemail; request.FromAlias = "campustalk官方团队"; request.AddressType = 1; request.TagName = "Regesiter"; request.ReplyToAddress = true; request.ToAddress = emailaddress; request.Subject = "[campustalk]验证码消息"; request.HtmlBody = "欢迎注册campustalk,您的验证码为:" + code + "。验证码有效期为:" + GlobalVar.CODE_VAL_TIME + "分钟"; SingleSendMailResponse httpResponse = client.GetAcsResponse(request); } catch (ServerException e) { return(false); } catch (ClientException e) { return(false); } return(true); }
public void Send(string to, string templateParam, string templateCode) { try { var request = new SendSmsRequest() { PhoneNumbers = to, SignName = AliyunSmsSettingConfigs.SignName, TemplateCode = templateCode, TemplateParam = templateParam, OutId = "Clmeng" }; var result = _acsClient.GetAcsResponse(request); if (result.Code == "") { } } catch (ServerException e) { throw new LotteryException("短信服务端异常", e); } catch (ClientException e) { throw new LotteryException("短信客户端异常", e); } }
public NormalResult Send(string signName, string templateCode, string recNum, string paramString) { NormalResult result = new NormalResult(); SingleSendSmsRequest request = new SingleSendSmsRequest(); try { request.SignName = signName; request.TemplateCode = templateCode; request.RecNum = recNum; request.ParamString = paramString; SingleSendSmsResponse httpResponse = _client.GetAcsResponse(request); } catch (ServerException ex) { _log.Write("短信发送失败 ServerException", ex.Message + "\r\n" + ex.StackTrace, TraceEventType.Warning); result.Success = false; result.Message = ex.Message; } catch (ClientException ex) { _log.Write("短信发送失败 ClientException", ex.Message + "\r\n" + ex.StackTrace, TraceEventType.Warning); result.Success = false; result.Message = ex.Message; } return(result); }
public async Task CheckAndModify() { string ip = await IPHelper.GetIP_Amazon(); if (string.IsNullOrEmpty(ip)) { throw new Exception("Get Local IP error:GetIP_Amazon()"); } foreach (var item in describeDomainRecords_Records) { if (Options.MonitorHosts.Contains(item.RR) && item._Value != ip) { //比对不相同的时候更新本地ip到服务器 var updateRequest = new UpdateDomainRecordRequest(); updateRequest.RecordId = item.RecordId; updateRequest.RR = item.RR; updateRequest.Type = item.Type; updateRequest._Value = ip; var updateResponse = client.GetAcsResponse(updateRequest); if (!updateResponse.HttpResponse.isSuccess()) { Log.Logger.Error($"主机记录:{item.RR},IP:{ip},更新ip失败"); } else { //更新本地存储的dns,方便下次对比,保证和服务端一致 item._Value = ip; Log.Logger.Information($"更新主机记录:{item.RR},更新前IP:{item._Value},更新后IP:{ip},"); } } } }
public QueryTokenForMnsQueueResponse.QueryTokenForMnsQueue_MessageTokenDTO GetTokenByMessageType(IAcsClient acsClient, String messageType) { QueryTokenForMnsQueueRequest request = new QueryTokenForMnsQueueRequest(); request.MessageType = messageType; QueryTokenForMnsQueueResponse queryTokenForMnsQueueResponse = acsClient.GetAcsResponse(request); QueryTokenForMnsQueueResponse.QueryTokenForMnsQueue_MessageTokenDTO token = queryTokenForMnsQueueResponse.MessageTokenDTO; return(token); }
/// <summary> /// 获取某域名的解析记录列表 /// </summary> /// <param name="Domain"></param> /// <returns></returns> public List <DescribeDomainRecordsResponse.Record> GetDomainRecords(string Domain) { var request = new DescribeDomainRecordsRequest() { DomainName = Domain, PageNumber = 1, PageSize = 500 }; try { var response = client.GetAcsResponse(request); return(response.DomainRecords); } catch { return(new List <DescribeDomainRecordsResponse.Record>()); } }
/// <exception cref="AliyunException"></exception> public AliyunStsToken?RequestOssStsToken(long userId, string bucketName, string directory, bool readOnly) { if (bucketName.IsNullOrEmpty() || userId < 0 || directory.IsNullOrEmpty()) { return(null); } directory = directory.TrimEnd('/'); string ossResourceName = $"acs:oss:*:*:{bucketName}"; if (!_resourceAssumedRoleDict.TryGetValue(ossResourceName, out AssumedRole assumedRole)) { return(null); } string policy = string.Format(GlobalSettings.Culture, readOnly ? OSS_READ_POLICY_TEMPLATE : OSS_WRITE_POLICY_TEMPLATE, bucketName, directory.IsNullOrEmpty() ? "*" : directory + "/*"); AssumeRoleRequest request = new AssumeRoleRequest { AcceptFormat = FormatType.JSON, RoleArn = assumedRole.Arn, RoleSessionName = GetRoleSessionName(userId), DurationSeconds = assumedRole.ExpireSeconds, Policy = policy }; try { AssumeRoleResponse assumedRoleResponse = _acsClient.GetAcsResponse(request); AliyunStsToken stsToken = new AliyunStsToken { RequestId = assumedRoleResponse.RequestId, SecurityToken = assumedRoleResponse.Credentials.SecurityToken, AccessKeyId = assumedRoleResponse.Credentials.AccessKeyId, AccessKeySecret = assumedRoleResponse.Credentials.AccessKeySecret, ExpirationAt = DateTimeOffset.Parse(assumedRoleResponse.Credentials.Expiration, GlobalSettings.Culture), ArId = assumedRoleResponse.AssumedRoleUser.AssumedRoleId, Arn = assumedRoleResponse.AssumedRoleUser.Arn, ReadOnly = readOnly }; return(stsToken); } catch (Exception ex) { //TODO: 处理报错 throw Exceptions.StsError(userId: userId, bucketname: bucketName, direcotry: directory, readOnly: readOnly, ex); } }
private BasicSessionCredentials GetNewSessionCredentials() { var request = new GetSessionAccessKeyRequest { PublicKeyId = rsaKeyPairCredential.GetAccessKeyId(), DurationSeconds = (int)sessionDurationSeconds, Protocol = ProtocolType.HTTPS }; var response = stsClient.GetAcsResponse(request); return(new BasicSessionCredentials( response.SessionAccesskey.SessionAccessKeyId, response.SessionAccesskey.SessionAccessKeySecert, null, sessionDurationSeconds )); }
public DomainRecord(DomainRecordOptions options) { Options = options; var profile = DefaultProfile.GetProfile(Options.RegionId, Options.AccessKeyId, Options.AccessKeySecret); client = new DefaultAcsClient(profile); request = new DescribeDomainRecordsRequest(); //request.Url = "http://domain.aliyuncs.com/"; request.DomainName = Options.DomainName; request.TypeKeyWord = Options.DomainType; //request.ActionName = "DescribeDomainRecords"; var response = client.GetAcsResponse(request); describeDomainRecords_Records = response.DomainRecords; }
private BasicSessionCredentials GetNewSessionCredentials() { assumeRoleRound += 1; AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest { RoleArn = roleArn, RoleSessionName = roleSessionName, DurationSeconds = roleSessionDurationSeconds }; AssumeRoleResponse response = stsClient.GetAcsResponse(assumeRoleRequest); return(new BasicSessionCredentials( response.Credentials.AccessKeyId, response.Credentials.AccessKeySecret, response.Credentials.SecurityToken, roleSessionDurationSeconds )); }
private BasicSessionCredentials GetNewSessionCredentials() { var assumeRoleRequest = new AssumeRoleRequest { RoleArn = roleArn, RoleSessionName = roleSessionName, DurationSeconds = roleSessionDurationSeconds }; if (!string.IsNullOrEmpty(policy)) { assumeRoleRequest.Policy = policy; } var response = stsClient.GetAcsResponse(assumeRoleRequest); return(new BasicSessionCredentials( response.Credentials.AccessKeyId, response.Credentials.AccessKeySecret, response.Credentials.SecurityToken, roleSessionDurationSeconds )); }
public virtual AssumeRoleResponse GetResponse(AssumeRoleRequest assumeRoleRequest) { return(stsClient.GetAcsResponse(assumeRoleRequest)); }