CN111399769B - 一种mime格式上传文件的存储方法及装置 - Google Patents

一种mime格式上传文件的存储方法及装置 Download PDF

Info

Publication number
CN111399769B
CN111399769B CN202010118522.7A CN202010118522A CN111399769B CN 111399769 B CN111399769 B CN 111399769B CN 202010118522 A CN202010118522 A CN 202010118522A CN 111399769 B CN111399769 B CN 111399769B
Authority
CN
China
Prior art keywords
data
mime
content
file
disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010118522.7A
Other languages
English (en)
Other versions
CN111399769A (zh
Inventor
王文鲁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Sipuling Technology Co Ltd
Original Assignee
Wuhan Sipuling Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Sipuling Technology Co Ltd filed Critical Wuhan Sipuling Technology Co Ltd
Priority to CN202010118522.7A priority Critical patent/CN111399769B/zh
Publication of CN111399769A publication Critical patent/CN111399769A/zh
Application granted granted Critical
Publication of CN111399769B publication Critical patent/CN111399769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及上传文件存储技术领域,公开了一种MIME格式上传文件的存储方法、装置以及计算机存储介质,其中,方法包括以下步骤:识别并上传MIME格式的数据包,申请内存块用于数据包缓存;将数据包中设定字节的数据缓存至内存块,解析首次缓存数据,并将首次缓存数据中除MIME格式信息外的内容数据写入磁盘;继续对数据包中数据进行缓存,每缓存设定字节的数据后将缓存数据写入磁盘;判断剩余未缓存数据是否大于设定字节,如果大于,则转上一步;否则将剩余数据缓存至内存块,解析末次缓存数据,并将末次缓存数据中除MIME格式信息外的内容数据写入磁盘。本发明存储逻辑简单,存储时磁盘IO不需要频繁写入,存储时性能消耗小。

Description

一种MIME格式上传文件的存储方法及装置
技术领域
本发明涉及上传文件存储技术领域,具体涉及一种MIME格式上传文件的存储方法、装置以及计算机存储介质。
背景技术
在最初的http协议中,没有上传文件方面的功能。rfc1867协议,如Microsoft IE、Mozila、Opera等,按照此规范将用户指定的文件发送到服务器。服务器端的网页程序,如php、asp、jsp等,可以按照此规范,解析出用户发送来的文件。Microsoft IE、Mozila、Opera已经支持此协议,在网页中使用一个特殊的form就可以发送文件。绝大部分http服务器,包括tomcat,已经支持此协议,可接受发送来的文件。各种网页程序,如php、asp、jsp中,对于上传文件已经做了很好的封装。
MIME(Multipurpose Internet Mail Extensions)为多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。它是一个互联网标准,扩展了电子邮件标准。目前,采用MIME格式上传文件的存储方法,实现过程如下:
1、识别并上传MIME格式的数据包。
2、对数据包进行逐行解析,获取文件名(filename)、上传的数据总长度(Content-Length)、边界值(boundary)等字段。
3、按行存储文件内容,把文件内容写入磁盘。
上述针对MIME格式上传文件的存储方法存在一些缺陷,具体如下:
1、按行解析,如果特征分包时,需要把当前行缓存起来,等到新的数据包来的时候,拼接到一起进行解析,存储逻辑复杂,消耗性能。
例如获取文件名test.txt的需要两个特征,开始特征filename=“,结束特征”\r\n,当文件名,当filename分在两个数据包中时,首先把file所在的一行数据缓存起来,然后等到下一个数据包来的时候,读取第一行数据,并且和缓存的数据拼接起来进行解析。
2、每读取一行文件内容数据,就把数据写入磁盘,导致磁盘IO繁忙。
3、查找文件内容结束位置对性能消耗严重:首先需要比较每行数据的开始位置是否是结束标记“--”,如果不是则把此行数据写文件,如果是则继续比较此行数据是否是边界值boundary,如果是,则说明是文件结束,如果不是则把此行数据写文件。
发明内容
本发明的目的在于克服上述技术不足,提供一种MIME格式上传文件的存储方法、装置以及计算机存储介质,解决现有技术中按行解析和存储时文件存储逻辑复杂、磁盘IO繁忙以及性能消耗高的技术问题。
为达到上述技术目的,本发明的技术方案提供一种MIME格式上传文件的存储方法,包括以下步骤:
识别并上传MIME格式的数据包,申请内存块用于数据包缓存;
将所述数据包中设定字节的数据缓存至内存块,解析首次缓存数据,并将首次缓存数据中除MIME格式信息外的内容数据写入磁盘;
继续对所述数据包中数据进行缓存,每缓存设定字节的数据后将缓存数据写入磁盘;
判断剩余未缓存数据是否大于设定字节,如果大于,则转上一步;否则将剩余数据缓存至内存块,解析末次缓存数据,并将末次缓存数据中除MIME格式信息外的内容数据写入磁盘。
本发明还提供一种MIME格式上传文件的存储装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述MIME格式上传文件的存储方法。
本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述MIME格式上传文件的存储方法。
与现有技术相比,本发明的有益效果包括:本发明首先申请一个内存块对数据包进行缓存,首次缓存完成后从首次缓存数据中依次解析出文件名、文件内容起始位置等MIME格式信息,由于首次缓存数据中已经完全包含我们需要解析和提取的内容,此时无需考虑特征分片带来的问题,从而解决了特征分片导致的存储逻辑复杂的问题。后续每缓存设定字节数据写一次文件,避免磁盘IO频繁。通过剩余未缓存数据的大小准确定位末次缓存数据,末次缓存数据中肯定能找到结束特征,这样只需一次查找就可以找到文件内容结束位置,极大降低查找文件内容结束位置对设备性能的消耗。
附图说明
图1是本发明提供的MIME格式上传文件的存储方法一实施方式的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
如图1所示,本发明的实施例1提供了MIME格式上传文件的存储方法,包括以下步骤:
S1、识别并上传MIME格式的数据包,申请内存块用于数据包缓存;
S2、将所述数据包中设定字节的数据缓存至内存块,解析首次缓存数据,并将首次缓存数据中除MIME格式信息外的内容数据写入磁盘;
S3、继续对所述数据包中数据进行缓存,每缓存设定字节的数据后将缓存数据写入磁盘;
S4、判断剩余未缓存数据是否大于设定字节,如果大于,则转上一步;否则将剩余数据缓存至内存块,解析末次缓存数据,并将末次缓存数据中除MIME格式信息外的内容数据写入磁盘。
本发明实施例在MIME格式文件上传后,首先申请一个内存块对上传的数据包进行缓存。首次缓存完成后从首次缓存数据中依次解析出文件名、文件内容起始位置等MIME格式信息,由于首次缓存数据中已经完全包含我们需要解析和提取的内容,此时无需考虑特征分片带来的问题,从而解决了特征分片导致的存储逻辑复杂的问题。后续每缓存设定字节数据写一次文件,避免磁盘IO频繁。通过剩余未缓存数据的大小准确定位末次缓存数据,末次缓存数据中肯定能找到结束特征,这样只需一次查找就可以找到文件内容结束位置,极大降低查找文件内容结束位置对设备性能的消耗。
应该理解的,每次缓存的缓存数据,其字节大小可以是不一样的,即每次缓存的设定字节可以是不一样的。
本发明提供的MIME格式上传文件的存储方法,解决了特征分片导致的文件存储逻辑复杂的问题;解决按行存储文件导致磁盘IO繁忙的问题;解决查找文件内容结束位置对设备性能消耗高的问题,无论上传的文件多大,只需要一次查找就可以找到文件内容结束位置,提高了设备处理性能。
优选的,识别并上传MIME格式的数据包,具体为:
根据MIME格式特征识别MIME格式的数据包,并采用表单方式上传所述数据包。
根据MIME格式特征识别出待上传的MIME文件,并采用表单方式(表单方式即Content-Type:multipart/form-data)上传。
优选的,所述首次缓存数据的字节数大于MIME格式信息的字节数。
首次缓存数据的字节数大于MIME格式信息的字节数,便于从首次缓存数据中解析出文件名、文件内容起始位置等MIME格式信息,从而有效避免特征分片,保证可以一次性从首次缓存数据中解析出起始位置前的所有MIME格式信息。
优选的,解析首次缓存数据,并将首次缓存数据中除MIME格式信息外的内容数据写入磁盘,具体为:
从所述首次缓存数据中解析出文件内容起始位置,根据所述文件内容起始位置从所述首次缓存数据中提取除MIME格式信息外的内容数据,并写入磁盘。
文件内容起始位置之前的数据为MIME格式信息,文件内容起始位置之后的数据为内容数据,因此解析出文件内容起始位置后,即可准确提取出除MIME格式信息外的内容数据进行存储。
优选的,判断剩余未缓存数据是否大于设定字节,具体为:
计算剩余未缓存数据:
剩余未缓存数据=上传数据的总长度-已经缓存数据总长度;
上传数据的总长度=内容数据长度+MIME格式信息长度;
判断计算出的剩余未缓存数据是否大于设定字节。
优选的,解析末次缓存数据,并将末次缓存数据中除MIME格式信息外的内容数据写入磁盘,具体为:
从所述末次缓存数据中解析出文件内容结束位置,根据所述文件内容结束位置从所述末次缓存数据中提取除MIME格式信息外的内容数据,并写入磁盘。
文件内容结束位置之前的数据为内容数据,文件内容结束位置之后的数据为MIME格式信息,因此解析出文件内容结束位置后,即可准确提取出除MIME格式信息外的内容数据进行存储。
以网易网盘上传一个10000字节大小文件test.txt为例说明采用本发明如何实现MIME格式上传文件的存储:
首先缓存2000字节数据,从这2000字节数据中提取文件名test.txt信息,并找到文件内容的起始位置(假设文件内容的起始位置con_start_pos为1000),则首次缓存的2000字节数据中文件真实内容数据的长度为2000-1000=1000字节,把这1000字节的内容数据写入磁盘,并在会话上记录偏移值write_offse=1000,已经上传数据的总长度为upload_len=2000。
继续缓存数据,当缓存的数据长度达到4000字节长度,则把此4000字节数据写入磁盘,并记录write_offset=4000+1000=5000,已经上传数据的总长度为upload_len=2000+4000=6000。
继续缓存数据,当缓存的数据长度达到4000字节长度,则把此4000字节数据写入磁盘,并记录write_offset=5000+4000=9000,已经上传数据的总长度为upload_len=2000+4000+4000=10000。
此时,上传数据的总长度=文件内容数据长度(10000字节)+MIME格式信息长度(2000字节)=12000字节,剩余未缓存数据长度content_length=上传数据的总长度(12000字节)-已经缓存数据长度(10000字节)=2000字节,这2000字节中不全是文件内容数据,还包含MIME格式信息,首先把这2000字节数据缓存起来,当缓存完成后,从这2000字节数据中查找文件内容结束位置content_end_pos=1000,则说明最后2000字节中包含的文件内容数据长度为1000字节,把这1000字节写入磁盘,文件存储完成。文件总共存储的长度为1000+4000+4000+1000=10000字节。
实施例2
本发明的实施例2提供了MIME格式上传文件的存储装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现实施例1提供的MIME格式上传文件的存储方法。
本发明实施例提供的MIME格式上传文件的存储装置,用于实现MIME格式上传文件的存储方法,因此,MIME格式上传文件的存储方法所具备的技术效果,MIME格式上传文件的存储装置同样具备,在此不再赘述。
实施例3
本发明的实施例3提供了计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现实施例1提供的MIME格式上传文件的存储方法。
本发明实施例提供的计算机存储介质,用于实现MIME格式上传文件的存储方法,因此,MIME格式上传文件的存储方法所具备的技术效果,计算机存储介质同样具备,在此不再赘述。
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。

Claims (8)

1.一种MIME格式上传文件的存储方法,其特征在于,包括以下步骤:
识别并上传MIME格式的数据包,申请内存块用于数据包缓存;
将所述数据包中设定字节的数据缓存至内存块,解析首次缓存数据,并将首次缓存数据中除MIME格式信息外的内容数据写入磁盘;
继续对所述数据包中数据进行缓存,每缓存设定字节的数据后将缓存数据写入磁盘;
判断剩余未缓存数据是否大于设定字节,如果大于,则转上一步;否则将剩余数据缓存至内存块,解析末次缓存数据,并将末次缓存数据中除MIME格式信息外的内容数据写入磁盘。
2.根据权利要求1所述的MIME格式上传文件的存储方法,其特征在于,识别并上传MIME格式的数据包,具体为:
根据MIME格式特征识别MIME格式的数据包,并采用表单方式上传所述数据包。
3.根据权利要求1所述的MIME格式上传文件的存储方法,其特征在于,所述首次缓存数据的字节数大于MIME格式信息的字节数。
4.根据权利要求1所述的MIME格式上传文件的存储方法,其特征在于,解析首次缓存数据,并将首次缓存数据中除MIME格式信息外的内容数据写入磁盘,具体为:
从所述首次缓存数据中解析出文件内容起始位置,根据所述文件内容起始位置从所述首次缓存数据中提取除MIME格式信息外的内容数据,并写入磁盘。
5.根据权利要求1所述的MIME格式上传文件的存储方法,其特征在于,判断剩余未缓存数据是否大于设定字节,具体为:
计算剩余未缓存数据:
剩余未缓存数据=上传数据的总长度-已经缓存数据总长度;
上传数据的总长度=内容数据长度+MIME格式信息长度;
判断计算出的剩余未缓存数据是否大于设定字节。
6.根据权利要求1所述的MIME格式上传文件的存储方法,其特征在于,解析末次缓存数据,并将末次缓存数据中除MIME格式信息外的内容数据写入磁盘,具体为:
从所述末次缓存数据中解析出文件内容结束位置,根据所述文件内容结束位置从所述末次缓存数据中提取除MIME格式信息外的内容数据,并写入磁盘。
7.一种MIME格式上传文件的存储装置,其特征在于,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1-6任一所述的MIME格式上传文件的存储方法。
8.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-6任一所述的MIME格式上传文件的存储方法。
CN202010118522.7A 2020-02-26 2020-02-26 一种mime格式上传文件的存储方法及装置 Active CN111399769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010118522.7A CN111399769B (zh) 2020-02-26 2020-02-26 一种mime格式上传文件的存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010118522.7A CN111399769B (zh) 2020-02-26 2020-02-26 一种mime格式上传文件的存储方法及装置

Publications (2)

Publication Number Publication Date
CN111399769A CN111399769A (zh) 2020-07-10
CN111399769B true CN111399769B (zh) 2021-01-26

Family

ID=71430458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010118522.7A Active CN111399769B (zh) 2020-02-26 2020-02-26 一种mime格式上传文件的存储方法及装置

Country Status (1)

Country Link
CN (1) CN111399769B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3128700A1 (en) * 2015-08-04 2017-02-08 BlackBerry Limited Method and device for attaching messages stored at a device as attachments to a message being composed at the device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1355231A3 (en) * 2001-11-21 2003-10-29 Sun Microsystems, Inc. Processing data files using plug-ins
KR20030004159A (ko) * 2002-10-08 2003-01-14 장원준 이메일 주소를 갖는 게시판
JP4635821B2 (ja) * 2005-10-24 2011-02-23 富士ゼロックス株式会社 情報処理装置、情報処理方法、及びプログラム
US8214439B2 (en) * 2005-12-06 2012-07-03 Microsoft Corporation Document object model API for MIME
EP2424189A3 (en) * 2007-10-15 2012-06-13 Penango, Inc. Methods and systems for encouraging secure communications
US20120284267A1 (en) * 2011-05-06 2012-11-08 International Business Machines Item Randomization with Item Relational Dependencies
US9426209B2 (en) * 2012-11-12 2016-08-23 Sap Se Upload/download of mobile applications using a MIME repository
WO2014093900A1 (en) * 2012-12-13 2014-06-19 Huawei Technologies Co., Ltd. Content based traffic engineering in software defined information centric networks
US9648127B2 (en) * 2014-12-15 2017-05-09 Level 3 Communications, Llc Caching in a content delivery framework
CN109597568B (zh) * 2018-09-18 2022-03-04 天津字节跳动科技有限公司 一种数据存储方法、装置、终端设备及存储介质
CN109857339A (zh) * 2019-01-10 2019-06-07 平安科技(深圳)有限公司 文件存储方法、装置、计算机设备和存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3128700A1 (en) * 2015-08-04 2017-02-08 BlackBerry Limited Method and device for attaching messages stored at a device as attachments to a message being composed at the device

Also Published As

Publication number Publication date
CN111399769A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
US8645453B2 (en) Method and system of processing cookies across domains
Ihm et al. Towards understanding modern web traffic
US10567407B2 (en) Method and system for detecting malicious web addresses
US20170199850A1 (en) Method and system to decrease page load time by leveraging network latency
US9077681B2 (en) Page loading optimization using page-maintained cache
CN1234086C (zh) 用于高速缓存文件信息的系统和方法
CN104657401A (zh) 一种web缓存的更新方法
KR20160024293A (ko) 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치
CN103118007A (zh) 一种用户访问行为的获取方法和系统
CN103425765A (zh) 网页正文的提取方法和装置、网页预览方法和系统
CN110737853B (zh) 一种多平台展示静态页面数据同步方法及b2b系统
WO2009009123A2 (en) Method for media discovery
CN104050253A (zh) 一种网页展示方法及浏览器
US7069292B2 (en) Automatic display method and apparatus for update information, and medium storing program for the method
CN111258956A (zh) 一种面向远端海量数据文件预读的方法及设备
CN110290396B (zh) 一种视频处理的方法、装置、系统、设备和存储介质
CN106681659A (zh) 数据压缩的方法及装置
CN111399769B (zh) 一种mime格式上传文件的存储方法及装置
CN114629929A (zh) 一种日志记录方法、装置及系统
CA2391417A1 (en) A system and method of mediating a web page
CN105824820A (zh) 一种媒体文件的缓存方法和装置
CN110855786B (zh) 针对网络数据请求的处理方法、设备及计算机存储介质
CN116320648B (zh) 一种弹幕绘制方法、装置及电子设备
JP5215393B2 (ja) コンテンツサーバの待ち時間の決定
CN116346785A (zh) 移动网络环境下智能移动终端及其多媒体流的处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant