|
@@ -1,78 +0,0 @@
|
|
|
-package cn.reghao.dfs.store.rpc;
|
|
|
|
|
-
|
|
|
|
|
-import cn.reghao.dfs.api.dto.EncryptParam;
|
|
|
|
|
-import cn.reghao.dfs.api.iface.MediaUrlService;
|
|
|
|
|
-import cn.reghao.dfs.store.config.DfsProperties;
|
|
|
|
|
-import cn.reghao.dfs.store.db.mapper.VideoFileMapper;
|
|
|
|
|
-import cn.reghao.dfs.store.db.mapper.VideoUrlMapper;
|
|
|
|
|
-import cn.reghao.dfs.api.dto.VideoUrlDto;
|
|
|
|
|
-import cn.reghao.jutil.jdk.security.crypto.AesEncrypt;
|
|
|
|
|
-import org.apache.dubbo.config.annotation.DubboService;
|
|
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
|
|
-
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Objects;
|
|
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * @author reghao
|
|
|
|
|
- * @date 2022-08-05 15:04:19
|
|
|
|
|
- */
|
|
|
|
|
-@DubboService
|
|
|
|
|
-@Service
|
|
|
|
|
-public class MediaUrlServiceImpl implements MediaUrlService {
|
|
|
|
|
- private final String encryptKey;
|
|
|
|
|
- private final VideoFileMapper videoFileMapper;
|
|
|
|
|
- private final VideoUrlMapper videoUrlMapper;
|
|
|
|
|
-
|
|
|
|
|
- public MediaUrlServiceImpl(DfsProperties dfsProperties, VideoFileMapper videoFileMapper, VideoUrlMapper videoUrlMapper) {
|
|
|
|
|
- this.encryptKey = dfsProperties.getEncryptKey();
|
|
|
|
|
- this.videoFileMapper = videoFileMapper;
|
|
|
|
|
- this.videoUrlMapper = videoUrlMapper;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public List<VideoUrlDto> getMp4Urls(String videoFileId) {
|
|
|
|
|
- List<VideoUrlDto> urls = videoUrlMapper.findByVideoFileId(videoFileId);
|
|
|
|
|
- return urls;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public List<VideoUrlDto> getEncryptMp4Urls(EncryptParam encryptParam) {
|
|
|
|
|
- String videoFileId = encryptParam.getVideoFileId();
|
|
|
|
|
- List<VideoUrlDto> urls = videoUrlMapper.findByVideoFileId(videoFileId);
|
|
|
|
|
- return urls.stream()
|
|
|
|
|
- .map(videoUrlDto -> {
|
|
|
|
|
- String url = videoUrlDto.getUrl();
|
|
|
|
|
- try {
|
|
|
|
|
- String encryptUrl = encryptUrl(encryptParam.getAccessUserId(), url);
|
|
|
|
|
- videoUrlDto.setUrl(encryptUrl);
|
|
|
|
|
- return videoUrlDto;
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- return null;
|
|
|
|
|
- })
|
|
|
|
|
- .filter(Objects::nonNull)
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private String encryptUrl(long accessUserId, String url) throws Exception {
|
|
|
|
|
- String key = "abcdABCD1234";
|
|
|
|
|
- // 链接过期时间戳,8 小时后过期
|
|
|
|
|
- long t = System.currentTimeMillis() + 8*3600*1000;
|
|
|
|
|
- String sign = String.format("%s_%s_%s", key, accessUserId, t);
|
|
|
|
|
- String encryptSign = AesEncrypt.encrypt(sign, encryptKey);
|
|
|
|
|
- return String.format("%s?sign=%s", url, encryptSign);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void setVideoFileAuth(String videoFileId, boolean auth) {
|
|
|
|
|
- videoFileMapper.updateSetVideoAuth(videoFileId, auth);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void setVideoFileActivate(String videoFileId, boolean activate) {
|
|
|
|
|
- videoFileMapper.updateSetVideoActivate(videoFileId, activate);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|