1. 程式人生 > 其它 >利用阿里雲的視訊點播上傳視訊的步驟

利用阿里雲的視訊點播上傳視訊的步驟

1、編寫控制層controller,cotroller只需要返回視訊的id,利用MultipartFile接收前端的檔案

@RestController
@CrossOrigin
@RequestMapping("/eduvod/video")
public class VodController {
    @Autowired
    private VodService vodService;

    //上傳視訊到阿里雲
    @PostMapping("/uploadAlyiVideo")
    public R uploadAlyiVideo(MultipartFile file){
        //返回上傳視訊的id值
        String videoId = vodService.uploadVideoAly(file);

        return R.ok().data("videoId",videoId);
    }
}

2、編寫業務層,參考阿里雲裡面的檔案上傳的方法

@Service
public class VodServiceImpl implements VodService {
    //上傳視訊到阿里雲
    @Override
    public String uploadVideoAly(MultipartFile file) {
        try {
//        accessKeyId,accessKeySecret,

//        fileName:上傳檔案原始名稱
            String fileName = file.getOriginalFilename();
//        title:上傳之後顯示的名稱
            String title = fileName.substring(0,fileName.lastIndexOf("."));
//        inputStream:上傳檔案輸入流
            InputStream inputStream = file.getInputStream();
            //
            UploadStreamRequest request = new UploadStreamRequest(ConstantVodUtils.ACCESS_KEY_ID, ConstantVodUtils.ACCESS_KEY_SECRET, title, fileName, inputStream);


            UploadVideoImpl uploadVideo = new UploadVideoImpl();
            UploadStreamResponse response = uploadVideo.uploadStream(request);

            String videoId = null;
            if(response.isSuccess()){
                videoId = response.getVideoId();
            }else{
                videoId = response.getVideoId();
            }
            return videoId;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}

3、設定配置檔案上傳的大小

# 伺服器埠
server.port=8003

#服務名
spring.application.name=service-vod

#環境設定:dev、test、prod
spring.profiles.active=dev

#設定上傳單個檔案大小:預設1M
spring.servlet.multipart.max-file-size=1024MB

#阿里雲 vod
#不同的伺服器,地址不同
aliyun.vod.file.keyid=LTAI5tH3WSRcqaHYumqdLPmD
aliyun.vod.file.keysecret=WCCdg5FijqmaynW3zvRhfsy2I0rd6A

4、編寫工具類,用於存放賬戶密碼,實現InitialzionBean介面,重寫裡面的方法,這個方法裡面的東西是在賦值之後執行的方法

@Component
public class ConstantVodUtils implements InitializingBean {

    @Value("${aliyun.vod.file.keyid}")
    private String keyId;

    @Value("${aliyun.vod.file.keysecret}")
    private String keySecret;

    public static String ACCESS_KEY_SECRET;
    public static String ACCESS_KEY_ID;
    @Override
    public void afterPropertiesSet() throws Exception {
        ACCESS_KEY_ID = keyId;
        ACCESS_KEY_SECRET = keySecret;
    }
}