[發明專利]一種上傳大文件的方法在審
| 申請號: | 201410015196.1 | 申請日: | 2014-01-14 |
| 公開(公告)號: | CN103701937A | 公開(公告)日: | 2014-04-02 |
| 發明(設計)人: | 管建智 | 申請(專利權)人: | 上海斐訊數據通信技術有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 上海信好專利代理事務所(普通合伙) 31249 | 代理人: | 張妍;張靜潔 |
| 地址: | 201620 上海市松*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 上傳 文件 方法 | ||
技術領域
本發明涉及一種上傳大文件的方法,尤其涉及一種在WEBDAV服務器上實現上傳大文件的方法。
背景技術
WEBDAV(Web-based?Distributed?Authoring?and?Versioning)是一種基于?HTTP?1.1協議的通信協議。它擴展了HTTP?1.1,在GET、POST、HEAD等幾個HTTP標準方法以外添加了一些新的方法,使應用程序可直接對Web?服務器直接讀寫,并支持寫文件鎖定及解鎖,還可以支持文件的版本控制。
WEBDAV作為一種文件共享的方案,已經在網關設備的某些開源方案(openwrt)上開始應用。典型的應用場景為:網關設備上部署WEBDAV服務器,將外接的存儲設備(移動硬盤)作為存儲介質,PC(個人電腦)、手機等終端通過客戶端或映射網絡驅動器的方法,可以下載或上傳文件,在用映射網絡驅動器的方法連接時可以直接修改服務器上的文件。
Lighttpd(lighttpd是一個用C語言實現的輕量級的http服務器,HTTP(Hyper?Text?Transfer?Protocol)即超文本傳輸協議,是目前網頁傳輸的通用協議)是個框架,在這個框架下可以同時做多種服務,比如:建立一個WEBDAV的服務器用于共享文件,同時建立一個WEB服務器,用于管理網關設備,也可以再建立一個WEB服務器做BBS。
在網關設備上可以用http服務器加載WEBDAV模塊的方式實現WEBDAV服務器。但在實際使用中,WEBDAV服務器不能上傳較大的文件,32M內存的設備一般不能上傳大于20M的文件。
http服務器處理上傳文件請求的步驟如下:
1、先從socket(網絡套接字)中接收http?header(http?header是http報文的頭部。可以將http報文當成是一個連續的字符串,該字符串可以分為兩部分:頭部(字符串前面的一部分,長度不定)和內容(剩余的部分)。頭部包含一些協議描述和控制的信息,內容部分是http協議需要傳送的內容),根據上傳請求的內容長度(Content-Length)字段的值獲得接收文件的大小;
步驟2、對于小于等于64K的文件,直接分配一個內存緩存(buffer)來接收;對于大于64K小于等于1M的文件,在tmpfs(臨時文件系統,是一種基于內存的文件系統,它只存在于內存中)中建立一個臨時文件來存儲;對于大于1M的文件,將文件分成以1M為單位的臨時文件存儲在臨時文件中,并用鏈表將這些臨時文件的信息保存起來;
步驟3、文件接收完成后,交給WEBDAV模塊處理,WEBDAV模塊將接收到的文件寫入對應的外部存儲介質中。
網關設備的剩余內存一般不會小于1M,所以對于1M左右的文件,一般都可以上傳。但當文件很大時,由于臨時文件都是存儲在物理內存中的,所以當上傳文件的大小大于系統剩余物理內存時,lighttpd最終會因內存不夠而放棄接收該文件,導致上傳失敗。
現有的上傳文件方案對上傳文件的大小有限制,這是由原始設計的上傳機制決定的,上傳文件大小的上限為當前系統中剩余物理內存的大小。這就給實際應用帶來了不便,尤其是無法上傳視頻文件。
目前業界還沒有對應的解決方案。
發明內容
本發明提供一種上傳大文件的方法,不受系統實際剩余物理內存的限制,實現對大文件的支持。
為了達到上述目的,本發明提供一種上傳大文件的方法,該方法用于WEBDAV服務器,該方法包含以下步驟:
步驟S1、如果http服務器接收到WEBDAV服務器的上傳請求,則判斷上傳文件的大小;
步驟S2、如果上傳文件的大小超過1M,WEBDAV模塊直接使用外部存儲設備接收并儲存上傳文件。
所述的步驟S1中,http服務器根據接收到的http報文頭部,判斷是否是WEBDAV服務器的上傳請求,如果是,就將在http連接上下文中擴充的標識變量賦值為真,表示http服務器要處理WEBDAV服務器的上傳服務,如果不是,則將該標識變量賦值為假。
在上傳文件的大小超過1M時,在WEBDAV模塊直接使用外部存儲設備接收并儲存上傳文件之前,還包括:http服務器先判斷http連接上下文中擴充的標識變量的賦值,如果賦值為真,則WEBDAV模塊直接使用外部存儲設備接收并儲存上傳文件。
所述的http報文頭部的內容包含超文本傳送協議方法和請求路徑。
所述的步驟S2中,外部存儲設備為移動硬盤,或者電腦,或者手機。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海斐訊數據通信技術有限公司,未經上海斐訊數據通信技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410015196.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種多轉軸PCB板焊接旋轉吹風治具
- 下一篇:截污系統





