package com.ruoyi.integration.iotda.builder; import com.huaweicloud.sdk.core.auth.AbstractCredentials; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.region.Region; import com.huaweicloud.sdk.iam.v3.IamClient; import com.huaweicloud.sdk.iam.v3.region.IamRegion; import com.huaweicloud.sdk.iotda.v5.IoTDAClient; import com.ruoyi.integration.iotda.config.IotDAConfig; import com.ruoyi.integration.iotda.constant.IotConstant; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Slf4j @Component public class IotBuilder { @Autowired private IotDAConfig config; /** * iot build * * @return */ public IoTDAClient buildIot() { ICredential auth = new BasicCredentials() // 标准版/企业版需要使用衍生算法,基础版请删除配置"withDerivedPredicate"; .withDerivedPredicate(AbstractCredentials.DEFAULT_DERIVED_PREDICATE) // Used in derivative ak/sk authentication scenarios .withAk(config.getAk()) .withSk(config.getSk()) .withProjectId(config.getProjectId()); return IoTDAClient.newBuilder() .withCredential(auth) // 标准版/企业版:需自行创建Region对象,基础版:请使用IoTDARegion的region对象,如"withRegion(IoTDARegion.CN_NORTH_4)" .withRegion(new Region("cn-south-1", IotConstant.URL)) .build(); } /** * iam build * * @return */ public IamClient buildIam() { ICredential auth = new BasicCredentials() // 标准版/企业版需要使用衍生算法,基础版请删除配置"withDerivedPredicate"; .withDerivedPredicate(AbstractCredentials.DEFAULT_DERIVED_PREDICATE) // Used in derivative ak/sk authentication scenarios .withAk(config.getAk()) .withSk(config.getSk()); return IamClient.newBuilder() .withCredential(auth) .withRegion(IamRegion.valueOf("cn-south-1")) .build(); } }