利用阿里雲的視訊點播上傳視訊的步驟
阿新 • • 發佈:2021-12-05
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;
}
}