鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ 阿里ECS向OSS傳遞mp4,速度爆慢,求解!

阿里ECS向OSS傳遞mp4,速度爆慢,求解!

由于視頻較大,應(yīng)顯示上傳進(jìn)度,所以分兩步:
1 用戶在瀏覽器里選中文件上傳至ECS的臨時(shí)目錄,cron定期清理該目錄;
2 用戶填寫視頻介紹、提交表單至ECS,ECS驗(yàn)證無誤后存入數(shù)據(jù)庫,并將臨時(shí)視頻轉(zhuǎn)發(fā)OSS。

我傳了一個(gè) 27MB 的 mp4,第一步耗時(shí)約 25 秒,第二步耗時(shí)約 20 秒,就是說在提交表單時(shí)會(huì)卡住 20 秒!

請(qǐng)問為啥會(huì)這么慢,從ECS到OSS走得難道不是阿里的內(nèi)網(wǎng)?應(yīng)該很快吧?(ECS和OSS都在華東1)

謝謝!

===========================================================================

我現(xiàn)在突然想到還有一個(gè)問題:對(duì)于上傳的視頻,我們后臺(tái)(PHP)必須抽取視頻流的第一幀作為海報(bào)(poster)供前端展示視頻列表使用,如果直接傳OSS的話,我們后臺(tái)就沒法拿到視頻抽取圖像了!

這張圖片是十分重要的,因?yàn)樵谝曨l列表頁里顯示的就是這張圖片,因此必須要有。目前我們PHP已經(jīng)能抽取首幀圖像了,前端那邊好像沒有太好辦法,所以我們是在ECS上收到視頻時(shí)生成圖像的。

請(qǐng)問這要怎么辦?謝謝!

回答
編輯回答
小眼睛

OSS可以走授權(quán)直傳的形式,ECS只需要負(fù)責(zé)發(fā)Token就行,客戶端拿到Token以后可以直接傳到OSS,并不需要走ECS中轉(zhuǎn),具體的參考OSS文檔里的最佳實(shí)踐吧。


第二個(gè)問題:OSS視頻截幀

2018年1月21日 23:05
編輯回答
氕氘氚

先謝謝樓上幾位朋友!

我現(xiàn)在突然想到還有一個(gè)問題:對(duì)于上傳的視頻,我們后臺(tái)(PHP)必須抽取視頻流的第一幀作為海報(bào)(poster)供前端展示視頻列表使用,如果直接傳OSS的話,我們后臺(tái)就沒法拿到視頻抽取圖像了!

這張圖片是十分重要的,因?yàn)樵谝曨l列表頁里顯示的就是這張圖片,因此必須要有。目前我們PHP已經(jīng)能抽取首幀圖像了,前端那邊好像沒有太好辦法,所以我們是在ECS上收到視頻時(shí)生成圖像的。

請(qǐng)問這要怎么辦?謝謝!

2017年8月1日 11:04
編輯回答
避風(fēng)港

別這么干,這樣要消耗不少你的ECS流量,你應(yīng)該考慮OSS STS授權(quán)方式,由客戶端直接上傳到oss上: https://help.aliyun.com/docum...

簡(jiǎn)單來說一下,這種方式相當(dāng)于客戶端從你的服務(wù)器拿到STS臨時(shí)授權(quán),這樣客戶端就可以不通過你的ECS服務(wù)器做中轉(zhuǎn),直接上傳文件到OSS上。

乍一看可能覺得很麻煩,但是如果你上傳大型視頻這種需求比較旺盛的情況下,這種方式對(duì)用戶的體驗(yàn)最好,速度快,又不占用你的ECS的帶寬

2018年5月9日 10:25
編輯回答
兔囡囡

第一個(gè),我覺得文件上傳要經(jīng)歷的步驟有兩個(gè).

1. 通過C端(瀏覽器)上傳到你的服務(wù)器.
2. 通過服務(wù)器的PHP代碼讀取流并上傳到OSS服務(wù)器.

你的耗時(shí)可以得到一個(gè)點(diǎn),25 + 20 為45秒,并不是所謂的20秒.那如何優(yōu)化這種,我是否可以直接通過前端直接上傳到oss,這樣就跳過第一步,至少減少20秒.而且這個(gè)時(shí)間就跟瀏覽器端的網(wǎng)速有關(guān)了.后臺(tái)就直接入庫就行了.
至于文件是否浪費(fèi)了,那就直接來一個(gè)定時(shí)清理就可以了.

2017年2月6日 14:59