一種上傳多媒體文件的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種上傳多媒體文件的方法及裝置,用以解決現(xiàn)有上傳技術(shù)上傳速度慢的問題。該方法包括:將多媒體文件分割為不超過預設大小的多個多媒體片段;通過多個上傳線程,將所述多個多媒體片段上傳至服務器,由所述服務器存儲。上述技術(shù)方案,通過多個上傳線程完成多媒體文件的上傳,相比現(xiàn)有技術(shù)利用單線程上傳,提高了上傳速度。
【專利說明】一種上傳多媒體文件的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)上傳【技術(shù)領(lǐng)域】,尤其涉及一種上傳多媒體文件的方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的客戶端或者終端設備向網(wǎng)絡側(cè)的服務器上傳多媒體文件時,通常是單線程上傳,即整個多媒體文件只依賴單個線程來完成上傳過程,這不免產(chǎn)生一些問題,比如該單個線程在上傳多媒體文件的過程中,如果該單個線程出現(xiàn)傳輸故障,則上傳會終止,從而使得上傳失敗,如果用戶想完成上傳,必須重新啟動線程來完成整個多媒體文件的上傳,用戶操作繁瑣;并且,由于是單線程上傳,因此,上傳速度慢。
【發(fā)明內(nèi)容】
[0003]為克服相關(guān)技術(shù)中存在的問題,本發(fā)明實施例提供一種上傳多媒體文件的方法及裝置,用以解決現(xiàn)有上傳技術(shù)上傳速度慢的問題。
[0004]本發(fā)明實施例提供了一種上傳多媒體文件的方法,包括:
[0005]將多媒體文件分割為不超過預設大小的多個多媒體片段;
[0006]通過多個上傳線程,將所述多個多媒體片段上傳至服務器,由所述服務器存儲。
[0007]在一個實施例中,所述通過多個上傳線程,將所述多個多媒體片段上傳至服務器,包括:
[0008]分別將每個多媒體片段數(shù)據(jù)和所述多媒體文件的業(yè)務數(shù)據(jù)寫入該多媒體片段對應的上傳請求中;
[0009]將每個多媒體片段各自對應的上傳請求分配至該多媒體片段對應的上傳線程;
[0010]啟動每個上傳線程,將每個上傳線程上的上傳請求發(fā)送至服務器。
[0011 ] 在一個實施例中,所述方法還包括:
[0012]將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器。
[0013]在一個實施例中,所述通過多個上傳線程,將所述多個多媒體片段上傳至服務器,包括:
[0014]將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器;
[0015]在總上傳線程上傳結(jié)束之后,監(jiān)控所述總上傳線程是否存在未成功上傳至服務器的多媒體片段;當存在未成功上傳至服務器的多媒體片段時,將該未成功上傳至服務器的多媒體片段分配至另一個上傳線程,啟動該另一個上傳線程,將該未成功上傳至服務器的多媒體片段上傳至服務器。
[0016]在一個實施例中,所述上傳請求包括超文本傳輸協(xié)議HTTP請求。
[0017]本發(fā)明實施例還提供了一種上傳多媒體文件的裝置,包括:
[0018]分割模塊,用于將多媒體文件分割為不超過預設大小的多個多媒體片段;
[0019]第一上傳模塊,用于通過多個上傳線程,將所述多個多媒體片段上傳至服務器,由所述服務器存儲。
[0020]在一個實施例中,所述第一上傳模塊,包括:
[0021]請求生成子模塊,用于分別將每個多媒體片段數(shù)據(jù)和所述多媒體文件的業(yè)務數(shù)據(jù)寫入該多媒體片段對應的上傳請求中;
[0022]請求分配子模塊,用于將每個多媒體片段各自對應的上傳請求分配至該多媒體片段對應的上傳線程;
[0023]第一上傳子模塊,用于啟動每個上傳線程,將每個上傳線程上的上傳請求發(fā)送至服務器。
[0024]在一個實施例中,所述裝置還包括:
[0025]第二上傳模塊,用于將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器。
[0026]在一個實施例中,所述第一上傳模塊,包括:
[0027]第二上傳子模塊,用于將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器;
[0028]第三上傳子模塊,用于在總上傳線程上傳結(jié)束之后,監(jiān)控所述總上傳線程是否存在未成功上傳至服務器的多媒體片段;當存在未成功上傳至服務器的多媒體片段時,將該未成功上傳至服務器的多媒體片段分配至另一個上傳線程,啟動該另一個上傳線程,將該未成功上傳至服務器的多媒體片段上傳至服務器。
[0029]在一個實施例中,所述上傳請求包括超文本傳輸協(xié)議HTTP請求。
[0030]本發(fā)明實施例提供的上述技術(shù)方案,通過多個上傳線程完成多媒體文件的上傳,相比現(xiàn)有技術(shù)利用單線程上傳,提高了上傳速度。
[0031]應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【專利附圖】
【附圖說明】
[0032]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0033]圖1為本發(fā)明實施例中一種上傳多媒體文件的方法的流程圖;
[0034]圖2為本發(fā)明實施例中一種上傳多媒體文件的裝置的結(jié)構(gòu)圖;
[0035]圖3為本發(fā)明實施例中一種上傳多媒體文件的裝置中一種第一上傳模塊的結(jié)構(gòu)圖;
[0036]圖4為本發(fā)明實施例中一種上傳多媒體文件的裝置的結(jié)構(gòu)圖;
[0037]圖5為本發(fā)明實施例中一種上傳多媒體文件的裝置中另一種第一上傳模塊的結(jié)構(gòu)圖。
【具體實施方式】
[0038]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0039]本發(fā)明實施例提供了一種上傳多媒體文件的方法,該方法可應用于應用程序、客戶端或者終端設備如手機、電腦等,如圖1所示,該方法可包括如下步驟S101-S102:
[0040]步驟S101、將多媒體文件分割為不超過預設大小的多個多媒體片段。
[0041]其中,預設大小的值可根據(jù)每個上傳線程的最大可傳輸數(shù)據(jù)大小來設置,最大不能超過每個上傳線程的最大可傳輸數(shù)據(jù)大小。比如系統(tǒng)規(guī)定每個上傳線程的最大可傳輸數(shù)據(jù)大小為1MB,則預設大小為IMB或者小于1MB。
[0042]在將多媒體文件分割為不超過預設大小的多個多媒體片段時,可從文件的起始點開始計算分割點,分割點兩側(cè)的數(shù)據(jù)便是多媒體片段的內(nèi)容,根據(jù)分割點的位置計算出每個多媒體片段的起始點和結(jié)束點,根據(jù)計算出的每個多媒體片段的起始點和結(jié)束點對多媒體文件進行分割。
[0043]步驟S102、通過多個上傳線程,將多個多媒體片段上傳至服務器,由服務器存儲。
[0044]其中,如果可啟動的上傳線程的最大數(shù)目有限制,則可根據(jù)多媒體片段的數(shù)目、和可啟動的上傳線程的最大數(shù)目,來為每個上傳線程分配數(shù)量均衡的多媒體片段。比如最多可啟動5個上傳線程,多媒體片段的數(shù)目有10個,則可為每個上傳線程分配2個多媒體片段,預先為每個上傳線程配置編號,比如0、1、2、3、4,先在第O號上傳線程上分配第一個和第二個多媒體片段,然后在第I號上傳線程上分配第三個和第四個多媒體片段......以此類推,直到在第4號上傳線程上分配了第九個和第十個多媒體片段。如果多媒體片段的數(shù)目是11個,則可將第十一個多媒體片段分配至該5個上傳線程中的任一個上。這樣,每個上傳線程上可能被分配一個多媒體片段或者多個多媒體片段。如果一個上傳線程上被分配了多個多媒體片段,則在利用該上傳線程上傳該多個多媒體片段時,可為該多媒體片段配置上傳順序,該上傳線程依序?qū)⒃摱鄠€多媒體片段上傳至服務器。另外,如果上傳線程的數(shù)目不受限制,則可為每個多媒體片段分配一個上傳線程,每個上傳線程上被分配一個多媒體片段。
[0045]本發(fā)明實施例提供的上述方法,通過多個上傳線程完成多媒體文件的上傳,相比現(xiàn)有技術(shù)利用單線程上傳,提高了上傳速度。
[0046]其中,步驟S102可實施為如下方式一或者方式二:
[0047]方式一、通過多個上傳線程上傳,另外,還可用另一個總上傳線程作為輔助
[0048]在方式一中,步驟S102可包括如下步驟A1-A3:
[0049]步驟Al、分別將每個視頻片段數(shù)據(jù)和視頻文件的業(yè)務數(shù)據(jù)寫入該視頻片段對應的上傳請求中。
[0050]步驟A2、將每個視頻片段各自對應的上傳請求分配至該視頻片段對應的上傳線程。
[0051]步驟A3、啟動每個上傳線程,將每個上傳線程上的上傳請求發(fā)送至服務器。
[0052]其中,將視頻文件的業(yè)務數(shù)據(jù)也寫入每個視頻片段數(shù)據(jù)對應的上傳請求中,即上傳請求中包括文件實體與業(yè)務數(shù)據(jù),這樣可以保證上傳的順暢、提高上傳的成功率。服務器接收到每個視頻片段各自對應的上傳請求時,進行相應的處理,比如對上傳的多媒體片段依序合并,生成多媒體文件,同時將業(yè)務數(shù)據(jù)寫入數(shù)據(jù)庫。
[0053]最終將上傳來的多個多媒體片段拼接為一個多媒體文件。
[0054]另外,為了對上傳任務的完整性加以鞏固,可以另外啟動一個單獨的線程,稱為總上傳線程,該總上傳線程用于在上述多個上傳線程上傳視頻片段的同時,依序?qū)⒍鄠€視頻片段上傳至服務器。這樣,即使多個上傳線程中的一個或者多個上傳線程上傳失敗,也有該總上傳線程作為保險線程來完整地完成上傳任務。
[0055]方式二、通過一個總上傳線程上傳,另外,用多個上傳線程作為輔助
[0056]在有些服務器環(huán)境下,從安全角度出發(fā),服務器會規(guī)定上傳線程的數(shù)目只能是I個,即只允許單線程上傳。此時,為了適配各種情況,上傳多媒體文件的一側(cè)如客戶端或者終端設備,可配置本地的上傳線程總數(shù)為I個,此時,步驟S102可包括如下步驟B1-B2:
[0057]步驟B1、將多個多媒體片段依序通過一個總上傳線程上傳至服務器。
[0058]步驟B2、在總上傳線程上傳結(jié)束之后,監(jiān)控總上傳線程是否存在未成功上傳至服務器的多媒體片段;當總上傳線程存在未成功上傳至服務器的多媒體片段時,將該未成功上傳至服務器的多媒體片段分配至另一個上傳線程,啟動該另一個上傳線程,將該未成功上傳至服務器的多媒體片段上傳至服務器。
[0059]在方式二中,不僅滿足服務器對上傳線程數(shù)目的規(guī)定,而且還保證了上傳任務的完整性。
[0060]上述方法中,上傳可使用HTTP (HyperText Transfer Protocol,超文本傳輸協(xié)議)協(xié)議,上傳請求可以是HTTP請求,上傳方法(HTTP Method)可以是POST。
[0061]上述方法中,在每個上傳線程或者總上傳線程將數(shù)據(jù)上傳給服務器之后,服務器會返回一個回應給上傳側(cè),該回應表明上傳線程的此次上傳任務是失敗還是成功,如果該回應表明該上傳線程的此次上傳任務成功,則上傳側(cè)會標記該上傳線程的此次上傳任務成功,并分配下一個上傳任務給該上傳線程,直到?jīng)]有上傳任務可分配給該上傳線程時,回收線程資源,上傳完成;如果該回應表明該上傳線程的此次上傳任務失敗,則上傳側(cè)會控制該上傳線程重新啟動此次上傳任務,如果重啟預設次數(shù)之后還不成功,則可放棄上傳。如果每個上傳線程的上傳任務都失敗,則即刻進行重新上傳,如果重復預設次數(shù)之后仍失敗,則令當前全部上傳任務停止,文件上傳失敗,等待用戶手動操作。
[0062]在一個實施例中,在每個上傳線程成功完成上傳任務之后,上傳側(cè)或者服務器可根據(jù)需要啟動的上傳線程的總數(shù)目與成功完成上傳任務的上傳線程數(shù)目,或者根據(jù)需要的上傳次數(shù)與成功完成的上傳次數(shù),來計算整個上傳任務的百分比進度,以此作為總進度數(shù)據(jù)。當所有上傳線程均成功完成上傳任務后,上傳進度為100%。
[0063]服務器可實時監(jiān)測完成上傳任務的上傳線程編號與需要啟動的上傳線程總數(shù)目的關(guān)系,待全部上傳線程的上傳任務均完成時,對上傳的多媒體片段依序合并,生成多媒體文件,同時將業(yè)務數(shù)據(jù)寫入數(shù)據(jù)庫。全部完成后,最終完成上傳任務。
[0064]本發(fā)明實施例還提供了一種上傳多媒體文件的裝置,如圖2所示,包括:
[0065]分割模塊21,用于將多媒體文件分割為不超過預設大小的多個多媒體片段;
[0066]第一上傳模塊22,用于通過多個上傳線程,將所述多個多媒體片段上傳至服務器,由所述服務器存儲。
[0067]在一個實施例中,如圖3所示,第一上傳模塊22可包括:
[0068]請求生成子模塊31,用于分別將每個多媒體片段數(shù)據(jù)和所述多媒體文件的業(yè)務數(shù)據(jù)寫入該多媒體片段對應的上傳請求中;
[0069]請求分配子模塊32,用于將每個多媒體片段各自對應的上傳請求分配至該多媒體片段對應的上傳線程;
[0070]第一上傳子模塊33,用于啟動每個上傳線程,將每個上傳線程上的上傳請求發(fā)送至服務器。
[0071]在一個實施例中,如圖4所示,上述裝置還可包括:
[0072]第二上傳模塊41,用于將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器。
[0073]在一個實施例中,如圖5所不,所述第一上傳模塊22可包括:
[0074]第二上傳子模塊51,用于將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器;
[0075]第三上傳子模塊52,用于在總上傳線程上傳結(jié)束之后,監(jiān)控所述總上傳線程是否存在未成功上傳至服務器的多媒體片段;當存在未成功上傳至服務器的多媒體片段時,將該未成功上傳至服務器的多媒體片段分配至另一個上傳線程,啟動該另一個上傳線程,將該未成功上傳至服務器的多媒體片段上傳至服務器。
[0076]在一個實施例中,所述上傳請求包括超文本傳輸協(xié)議HTTP請求。
[0077]本領(lǐng)域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0078]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0079]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0080]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0081]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種上傳多媒體文件的方法,其特征在于,包括: 將多媒體文件分割為不超過預設大小的多個多媒體片段; 通過多個上傳線程,將所述多個多媒體片段上傳至服務器,由所述服務器存儲。
2.如權(quán)利要求1所述的方法,其特征在于,所述通過多個上傳線程,將所述多個多媒體片段上傳至服務器,包括: 分別將每個多媒體片段數(shù)據(jù)和所述多媒體文件的業(yè)務數(shù)據(jù)寫入該多媒體片段對應的上傳請求中; 將每個多媒體片段各自對應的上傳請求分配至該多媒體片段對應的上傳線程; 啟動每個上傳線程,將每個上傳線程上的上傳請求發(fā)送至服務器。
3.如權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器。
4.如權(quán)利要求1所述的方法,其特征在于,所述通過多個上傳線程,將所述多個多媒體片段上傳至服務器,包括: 將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器; 在總上傳線程上傳結(jié)束之后,監(jiān)控所述總上傳線程是否存在未成功上傳至服務器的多媒體片段;當存在未成功上傳至服務器的多媒體片段時,將該未成功上傳至服務器的多媒體片段分配至另一個上傳線程,啟動該另一個上傳線程,將該未成功上傳至服務器的多媒體片段上傳至服務器。
5.如權(quán)利要求2至4中任一所述的方法,其特征在于, 所述上傳請求包括超文本傳輸協(xié)議HTTP請求。
6.一種上傳多媒體文件的裝置,其特征在于,包括: 分割模塊,用于將多媒體文件分割為不超過預設大小的多個多媒體片段; 第一上傳模塊,用于通過多個上傳線程,將所述多個多媒體片段上傳至服務器,由所述服務器存儲。
7.如權(quán)利要求6所述的裝置,其特征在于,所述第一上傳模塊,包括: 請求生成子模塊,用于分別將每個多媒體片段數(shù)據(jù)和所述多媒體文件的業(yè)務數(shù)據(jù)寫入該多媒體片段對應的上傳請求中; 請求分配子模塊,用于將每個多媒體片段各自對應的上傳請求分配至該多媒體片段對應的上傳線程; 第一上傳子模塊,用于啟動每個上傳線程,將每個上傳線程上的上傳請求發(fā)送至服務器。
8.如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 第二上傳模塊,用于將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器。
9.如權(quán)利要求6所述的裝置,其特征在于,所述第一上傳模塊,包括: 第二上傳子模塊,用于將所述多個多媒體片段依序通過一個總上傳線程上傳至服務器; 第三上傳子模塊,用于在總上傳線程上傳結(jié)束之后,監(jiān)控所述總上傳線程是否存在未成功上傳至服務器的多媒體片段;當存在未成功上傳至服務器的多媒體片段時,將該未成功上傳至服務器的多媒體片段分配至另一個上傳線程,啟動該另一個上傳線程,將該未成功上傳至服務器的多媒體片段上傳至服務器。
10.如權(quán)利要求6至9中任一所述的裝置,其特征在于, 所述上傳請求包括超文本傳輸協(xié)議HTTP請求。
【文檔編號】G06F9/46GK104361057SQ201410607296
【公開日】2015年2月18日 申請日期:2014年10月31日 優(yōu)先權(quán)日:2014年10月31日
【發(fā)明者】彭岳松 申請人:無錫天脈聚源傳媒科技有限公司