阿里雲視訊點播
阿新 • • 發佈:2020-09-13
阿里雲視訊點播
- 註冊阿里雲開通視訊點播服務(免費),獲取key和keysecret
1、導依賴
- aliyun-java-vod-upload這個包沒有開源,需要自己匯入jar
<dependency> //這個包在maven中沒有,需要自己匯入 <groupId>com.aliyun</groupId> <artifactId>aliyun-java-vod-upload</artifactId> <version>1.4.12</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.1</version> </dependency> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-vod</artifactId> <version>2.15.10</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20170516</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency>
2、配置基本資訊
server.port=8006
spring.application.name=service_vod
aliyun.vod.file.keyid=LTAI4G8**********8J7x6x8xs
aliyun.vod.file.keysecret=hWMX*************LJvDj6
spring.servlet.multipart.max-file-size =100MB //限制視訊大小
spring.servlet.multipart.max-request-size=100MB
3、讀取配置的基本資訊
package com.wagn.vod.utils; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class ReadUtil implements InitializingBean { @Value("${aliyun.vod.file.keyid}") private String keyid; @Value("${aliyun.vod.file.keysecret}") private String keysecret; public static String KEY_ID; public static String KEY_SECRET; @Override public void afterPropertiesSet() throws Exception { KEY_ID = keyid; KEY_SECRET = keysecret; } }
4、介面接受file流
package com.wagn.vod.controller; import com.wagn.vod.service.VodService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @RestController @RequestMapping("/vod") public class VodController { @Autowired private VodService vodService; @PostMapping("upload") public String upload(MultipartFile file){ String rs = vodService.upload(file); return rs; } }
5、執行上傳file,成功則返回視訊ID
- 返回視訊ID
package com.wagn.vod.service.Impl;
import com.aliyun.vod.upload.impl.UploadVideoImpl;
import com.aliyun.vod.upload.req.UploadStreamRequest;
import com.aliyun.vod.upload.resp.UploadStreamResponse;
import com.wagn.vod.service.VodService;
import com.wagn.vod.utils.ReadUtil;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
@Service
public class VodServiceImpl implements VodService {
@Override
public String upload(MultipartFile file) {
try {
String fileName = file.getOriginalFilename();
String title = fileName.substring(0,fileName.lastIndexOf('.'));
InputStream inputStream = file.getInputStream();
UploadStreamRequest request = new UploadStreamRequest(ReadUtil.KEY_ID, ReadUtil.KEY_SECRET, title, fileName, inputStream);
UploadVideoImpl uploader = new UploadVideoImpl();
UploadStreamResponse response = uploader.uploadStream(request);
if (response.isSuccess()) {
//儲存id到小節
return response.getVideoId();
} else { //如果設定回撥URL無效,不影響視訊上傳,可以返回VideoId同時會返回錯誤碼。其他情況上傳失敗時,VideoId為空,此時需要根據返回錯誤碼分析具體錯誤原因
return null;
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}