package com.dji.sample.storage.service.impl; import com.dji.sample.component.mqtt.model.*; import com.dji.sample.component.mqtt.service.IMessageSenderService; import com.dji.sample.component.oss.model.OssConfiguration; import com.dji.sample.component.oss.service.impl.OssServiceContext; import com.dji.sample.media.model.StsCredentialsDTO; import com.dji.sample.storage.service.IStorageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.mqtt.support.MqttHeaders; import org.springframework.messaging.MessageHeaders; import org.springframework.stereotype.Service; /** * @author sean * @version 0.3 * @date 2022/3/9 */ @Service public class StorageServiceImpl implements IStorageService { @Autowired private IMessageSenderService messageSender; @Autowired private OssServiceContext ossService; @Override public StsCredentialsDTO getSTSCredentials() { return StsCredentialsDTO.builder() .endpoint(OssConfiguration.externalEndpoint) .bucket(OssConfiguration.bucket) .credentials(ossService.getCredentials()) .provider(OssConfiguration.provider) .objectKeyPrefix(OssConfiguration.objectDirPrefix) .region(OssConfiguration.region) .build(); } @Override @ServiceActivator(inputChannel = ChannelName.INBOUND_REQUESTS_STORAGE_CONFIG_GET, outputChannel = ChannelName.OUTBOUND) public void replyConfigGet(CommonTopicReceiver receiver, MessageHeaders headers) { CommonTopicResponse response = CommonTopicResponse.builder() .tid(receiver.getTid()) .bid(receiver.getBid()) .data(RequestsReply.success(this.getSTSCredentials())) .timestamp(System.currentTimeMillis()) .method(receiver.getMethod()) .build(); messageSender.publish(headers.get(MqttHeaders.RECEIVED_TOPIC) + TopicConst._REPLY_SUF, response); } }