派生自 projectDept/qhighschool

胡仁荣
2023-07-18 885290e4d0d0c7fad3f538d901c616e49c3d6985
src/main/java/com/qxueyou/scc/teach/res/service/impl/ResService.java
@@ -6,6 +6,11 @@
import javax.annotation.PostConstruct;
import com.obs.services.ObsClient;
import com.obs.services.model.HttpMethodEnum;
import com.obs.services.model.TemporarySignatureRequest;
import com.obs.services.model.TemporarySignatureResponse;
import com.qxueyou.scc.config.HweiOBSConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.annotation.Scheduled;
@@ -46,6 +51,9 @@
    @Autowired
    private ApplicationContext appContext;
    @Autowired
    private HweiOBSConfig hweiOBSConfig;
    @Autowired
    private IClassLectureService classLectureService;
@@ -129,7 +137,7 @@
        Res res = read(Res.class, resId);
        resItemServiceMap.get(res.getType()).update(res.getItemDestId(), name);
//        resItemServiceMap.get(res.getType()).update(res.getItemDestId(), name);
        TraceUtils.setUpdateTrace(res);
        res.setName(name);
@@ -306,17 +314,26 @@
    public Result readAccessPath(String resId, String attribute) {
        Res res = read(Res.class, resId);
//        Object path = Res.FILE_TYPE_VIDEO.equals(res.getType())? JSONObject.parse(resItemServiceMap.get(res.getType()).readAccessPath(res.getItemDestId(), attribute)):CollectionUtils.newObjectMap("path", resItemServiceMap.get(res.getType()).readAccessPath(res.getItemDestId(), attribute));
        Object path = Res.FILE_TYPE_VIDEO.equals(res.getType())? resItemServiceMap.get(res.getType()).readAccessPath(res.getItemDestId(), attribute):resItemServiceMap.get(res.getType()).readAccessPath(res.getItemDestId(), attribute);
        if(Res.FILE_TYPE_DOC.equals(res.getType())) {
//        if(Res.FILE_TYPE_DOC.equals(res.getType())) {
//            return new Result(true, "success",
//                     CollectionUtils.newObjectMap("path", path, "name", res.getName(), "coverPageUrl", res.getCoverPageUrl(), "size",
//                           this.classLectureService.readDocPageCount(res.getItemDestId())));//文件的页数
//        }else {
        // URL有效期,3600秒
        long expireSeconds = 3600L;
        TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, expireSeconds);
        //设置桶名,一般都是写在配置里,这里直接赋值即可
        request.setBucketName(hweiOBSConfig.getBucketName());
        //这里相当于设置你上传到obs的文件路
        request.setObjectKey((String) path);
        ObsClient obsClient = new ObsClient(hweiOBSConfig.getAccessKey(),hweiOBSConfig.getSecurityKey(),hweiOBSConfig.getEndPoint());
        TemporarySignatureResponse temporarySignatureResponse=obsClient.createTemporarySignature(request);
            return new Result(true, "success",
                     CollectionUtils.newObjectMap("path", path, "name", res.getName(), "coverPageUrl", res.getCoverPageUrl(), "size",
                           this.classLectureService.readDocPageCount(res.getItemDestId())));//文件的页数
        }else {
            return new Result(true, "success",
                     CollectionUtils.newObjectMap("path", path, "name", res.getName(), "coverPageUrl", res.getCoverPageUrl(), "size", 0));
        }
                     CollectionUtils.newObjectMap("path", temporarySignatureResponse.getSignedUrl(), "name", res.getName(), "coverPageUrl", res.getCoverPageUrl(), "size", 0));
//        }
    }