Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 years ago
parent
commit
bcc102f747

+ 0 - 3
cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -147,9 +147,6 @@
             <if test="realName != null and realName != ''">
                 real_name_ = #{realName},
             </if>
-            <if test="isSuperAdmin != null">
-                is_super_admin_ = #{isSuperAdmin},
-            </if>
             <if test="certificateType != null">
                 certificate_type_ = #{certificateType},
             </if>

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomVideoServiceImpl.java

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.biz.dal.entity.LiveRoomVideo;
 import com.yonge.cooleshow.biz.dal.entity.RecordNotify;
 import com.yonge.cooleshow.biz.dal.service.LiveRoomService;
 import com.yonge.cooleshow.biz.dal.service.LiveRoomVideoService;
+import com.yonge.toolset.thirdparty.storage.StoragePluginContext;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -32,6 +33,8 @@ public class LiveRoomVideoServiceImpl extends ServiceImpl<LiveRoomVideoDao, Live
 
     @Autowired
     private LiveRoomService liveRoomService;
+    @Autowired
+    private StoragePluginContext storagePluginContext;
 
     @Override
     public LiveRoomVideoDao getDao() {
@@ -59,7 +62,7 @@ public class LiveRoomVideoServiceImpl extends ServiceImpl<LiveRoomVideoDao, Live
         if (recordNotify.getCode().equals(200)) {
             if (Objects.nonNull(recordNotify.getType())) {
                 //云端录制文件地址
-                String fileUrl = recordNotify.getOutput().getFileUrl();
+                String fileUrl = storagePluginContext.getPublicUrl(recordNotify.getOutput().getFileUrl());
                 //房间uid
                 String roomUId = recordNotify.getRoomId();
                 //融云唯一id标识

+ 12 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/StoragePlugin.java

@@ -46,4 +46,16 @@ public interface StoragePlugin {
      * @return
      */
     PostObjectFormFields getUploadSign(UploadSign uploadSign);
+
+    /**
+     * @describe 设置文件访问为私有或公开
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zx
+     * @date 2022/7/13
+     * @time 11:35
+     * @param fileName:
+     * @param isPublic:
+     * @return void
+     */
+    void setFileAcl(String fileName,Boolean isPublic);
 }

+ 18 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/StoragePluginContext.java

@@ -7,6 +7,7 @@ import java.util.Map;
 
 import com.ksyun.ks3.dto.PostObjectFormFields;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
+import com.yonge.toolset.thirdparty.storage.provider.KS3StoragePlugin;
 import org.springframework.stereotype.Component;
 
 import com.yonge.toolset.base.exception.ThirdpartyException;
@@ -38,6 +39,23 @@ public class StoragePluginContext {
         return StoragePlugin.getUploadSign(uploadSign);
     }
 
+    public void setFileAcl(String storagePluginName,String fileName,Boolean isPublic){
+        StoragePlugin storagePlugin = getStoragePlugin(storagePluginName);
+        storagePlugin.setFileAcl(fileName,isPublic);
+    }
+
+    public String getPublicUrl(String fileName){
+        try {
+            String substring = fileName.substring(0, fileName.lastIndexOf("?"));
+            String substring1 = substring.substring(substring.lastIndexOf("/") + 1);
+            this.setFileAcl(KS3StoragePlugin.PLUGIN_NAME,substring1,true);
+            return substring;
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return fileName;
+    }
+
     private StoragePlugin getStoragePlugin(String storagePluginName) {
         StoragePlugin storagePlugin = mapper.get(storagePluginName);
 

+ 5 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/AliyunOssStoragePlugin.java

@@ -169,6 +169,11 @@ public class AliyunOssStoragePlugin implements StoragePlugin, InitializingBean,
     }
 
     @Override
+    public void setFileAcl(String fileName, Boolean isPublic) {
+        return;
+    }
+
+    @Override
     public void destroy() throws Exception {
         if (ossClient != null) {
             ossClient.shutdown();

+ 14 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/KS3StoragePlugin.java

@@ -7,6 +7,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.ksyun.ks3.service.request.PutObjectACLRequest;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -192,6 +193,19 @@ public class KS3StoragePlugin implements StoragePlugin, InitializingBean, Dispos
     }
 
     @Override
+    public void setFileAcl(String fileName, Boolean isPublic) {
+        PutObjectACLRequest request = new PutObjectACLRequest(bucketName,fileName);
+        if (isPublic){
+            //设为公开读
+            request.setCannedAcl(CannedAccessControlList.PublicRead);
+        }else {
+            //设为私有
+            request.setCannedAcl(CannedAccessControlList.Private);
+        }
+        client.putObjectACL(request);
+    }
+
+    @Override
     public void destroy() throws Exception {
     }