spring boot實(shí)現(xiàn)阿里云視頻點(diǎn)播上傳視頻功能(復(fù)制粘貼即可)
目錄:
1.spring boot實(shí)現(xiàn)阿里云視頻點(diǎn)播上傳視頻(復(fù)制粘貼即可)
2.spring boot 實(shí)現(xiàn)阿里云視頻點(diǎn)播 --刪除視頻
準(zhǔn)備工作:
阿里云地址: https://www.aliyun.com/
登錄阿里云,確保賬戶有余額,有幾毛錢就夠了,開發(fā)學(xué)習(xí)基本不花錢。

2.進(jìn)入阿里云開通視頻點(diǎn)播功能

3.獲取阿里云密鑰

代碼編寫:
目錄結(jié)構(gòu):

application.properties
# 服務(wù)端口 server.port=8003 # 服務(wù)名 spring.application.name=vod # 環(huán)境設(shè)置:dev、test、prod spring.profiles.active=dev #阿里云 vod #不同的服務(wù)器,地址不同 aliyun.vod.file.keyid=自己的密鑰id aliyun.vod.file.keysecret=自己的密鑰 # 最大上傳單個(gè)文件大?。耗J(rèn)1M spring.servlet.multipart.max-file-size=1024MB # 最大置總上傳的數(shù)據(jù)大小 :默認(rèn)10M spring.servlet.multipart.max-request-size=1024MB
ConstantVodUtils ,獲取配置文件的配置信息
@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;
}
}
VodController
@RestController
@RequestMapping("/vod/video")
@CrossOrigin
public class VodController {
@Autowired
private VodService vodService;
//上傳視頻到阿里云
@PostMapping("uploadAlyiVideo")
public String uploadAlyiVideo(MultipartFile file) {
//返回上傳視頻id
String videoId = vodService.uploadVideoAly(file);
return videoId;
}
}
service
public interface VodService {
//上傳視頻到阿里云
String uploadVideoAly(MultipartFile file);
}
@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 uploader = new UploadVideoImpl();
UploadStreamResponse response = uploader.uploadStream(request);
String videoId = null;
if (response.isSuccess()) {
videoId = response.getVideoId();
} else { //如果設(shè)置回調(diào)URL無效,不影響視頻上傳,可以返回VideoId同時(shí)會(huì)返回錯(cuò)誤碼。其他情況上傳失敗時(shí),VideoId為空,此時(shí)需要根據(jù)返回錯(cuò)誤碼分析具體錯(cuò)誤原因
videoId = response.getVideoId();
}
return videoId;
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
}
界面簡(jiǎn)單編寫
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post" enctype="multipart/form-data" action="http://127.0.0.1:8003/vod/video/uploadAlyiVideo"> <input type="file" name="file"/> <input type="submit" value="提交"/> </form> </body> </html>
上傳成功后返回視頻id

且在阿里云點(diǎn)播控制臺(tái)看到視頻已經(jīng)上傳

到此這篇關(guān)于spring boot實(shí)現(xiàn)阿里云視頻點(diǎn)播上傳視頻(復(fù)制粘貼即可)的文章就介紹到這了,更多相關(guān)spring boot阿里云視頻點(diǎn)播上傳視頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中MapStruct實(shí)現(xiàn)優(yōu)雅的數(shù)據(jù)復(fù)制
本文主要介紹了SpringBoot中MapStruct實(shí)現(xiàn)優(yōu)雅的數(shù)據(jù)復(fù)制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
新手了解java 數(shù)組基礎(chǔ)知識(shí)
這篇文章主要介紹了Java 數(shù)組分析及簡(jiǎn)單實(shí)例的相關(guān)資料,在Java中它就是對(duì)象,一個(gè)比較特殊的對(duì)象,需要的朋友可以參考下,希望可以對(duì)你有所幫助2021-07-07
IDEA自動(dòng)生成類圖和時(shí)序圖的操作指南
idea 的強(qiáng)大之處在于此,它包含了很多小插件,我們不需要再次下載相關(guān)插件,只需要在idea中小小的設(shè)置一下就可以了,本文我介紹了IDEA自動(dòng)生成類圖和時(shí)序圖的操作指南,我用的是idea2020版本,需要的朋友可以參考下2024-05-05
在SpringBoot中利用RocketMQ實(shí)現(xiàn)批量消息消費(fèi)功能
RocketMQ 是一款分布式消息隊(duì)列,支持高吞吐、低延遲的消息傳遞,對(duì)于需要一次處理多條消息的場(chǎng)景,RocketMQ 提供了批量消費(fèi)的機(jī)制,這篇文章將展示如何在 Spring Boot 中實(shí)現(xiàn)這一功能,感興趣的小伙伴跟著小編一起來看看吧2024-11-11
SpringBoot ResponseBody返回值處理的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot ResponseBody返回值處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Java getRealPath("/")與getContextPath()區(qū)別詳細(xì)分析
這篇文章主要介紹了Java getRealPath("/")與getContextPath()區(qū)別詳細(xì)分析,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
Spring cloud gateway設(shè)置context-path服務(wù)路由404排查過程
這篇文章主要介紹了Spring cloud gateway設(shè)置context-path服務(wù)路由404排查過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
OutOfMemoryError內(nèi)存不足和StackOverflowError堆棧溢出示例詳解
這篇文章主要為大家介紹了OutOfMemoryError內(nèi)存不足和StackOverflowError堆棧溢出示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

