
技术领域technical field
本发明涉及文件加密上传技术领域,具体涉及基于fastdfs的大文件分块上传及加密存储方法。The invention relates to the technical field of file encryption and uploading, in particular to a fastdfs-based large file block uploading and encryption storage method.
背景技术Background technique
fastdfs文件服务作为一个开源的轻量级分布式文件系统,具有分组存储,对等结构,对大、中、小文件均可以很好支持等特点,因此得到许多公司企业的青睐。但对于大文件的分块上传,只支持有顺序的调用其内部的append接口方法,对文件分块进行有序的追加合并,解决了大文件上传在弱网条件下的容错率。但在高带宽环境中,并不能并发上传对象分块来充分利用网络带宽,最大限度的增加文件上传的速度。As an open source lightweight distributed file system, fastdfs file service has the characteristics of group storage, peer-to-peer structure, and good support for large, medium, and small files, so it is favored by many companies. However, for uploading large files in chunks, it only supports sequentially calling its internal append interface method to append and merge file chunks in an orderly manner, which solves the fault tolerance rate of uploading large files under weak network conditions. However, in a high-bandwidth environment, it is not possible to upload object blocks concurrently to make full use of network bandwidth and maximize file upload speed.
为了优化上传速率,进一步提高用户上传文件体验,此专利放弃fastdfs自带的append拼接文件接口,记录大文件分块上传过程中的每一块分块文件的唯一标识信息及上传返回的存储路径信息,并对每一块分块文件字节流进行AES加密,前端可并发上传分块文件,并由服务端返回唯一标识文件的已上传分块数量,当所有分块文件上传完后,通知服务端对该文件进行实际业务数据的写入,并关联唯一标识。在文件下载时,基于唯一标识关联查询分块文件,进行对称密钥解密下载,生成二进制文件,最后追加写入响应流。In order to optimize the upload rate and further improve the user experience of uploading files, this patent abandons the append splicing file interface that comes with fastdfs, and records the unique identification information of each block file in the process of uploading large files in blocks and the storage path information returned by the upload. And AES encryption is performed on the byte stream of each block file. The front end can upload the block files concurrently, and the server returns the number of uploaded blocks that uniquely identify the file. When all the block files are uploaded, the server is notified. This file writes actual business data and associates a unique identifier. When the file is downloaded, the block file is queried based on the unique identifier association, the symmetric key is decrypted and downloaded, the binary file is generated, and finally added to the response stream.
现有技术中,前端采用vue-simple-uploader上传组件并进行封装,对大文件进行切块之后,携带切块文件及其相关信息并发请求服务端,服务端用MultipartFile接收分块文件,对分块文件字节流进行AES加密后,上传至fastdfs服务器中,fastdfs返回上传存储路径后,持久化记录此次上传的分块文件信息,含标识分块属同一文件的唯一标识,存储路径,MD5等信息。之后返回该文件已上传的片数信息。In the existing technology, the front end uses vue-simple-uploader to upload components and encapsulate them. After cutting large files, it carries the cut files and related information and requests the server concurrently. The server uses MultipartFile to receive the divided files and split them into After the byte stream of the block file is encrypted by AES, it is uploaded to the fastdfs server. After fastdfs returns the upload storage path, it will persistently record the uploaded block file information, including the unique identifier identifying the block belonging to the same file, the storage path, and MD5 and other information. After that, return the information about the number of slices of the file that have been uploaded.
前端根据返回的上传片数信息,判断是否完成整个文件上传,若整个文件的分块文件都上传成功,则请求业务接口,写入主文件信息并关联该文件唯一标识。The front end judges whether the upload of the entire file is completed based on the returned number of uploaded pieces. If the entire file is uploaded successfully, it requests the business interface, writes the main file information and associates the unique identifier of the file.
在文件下载时,基于唯一标识关联查询分块文件,进行对称密钥解密下载,生成二进制文件,最后追加写入响应流。When the file is downloaded, the block file is queried based on the unique identifier association, the symmetric key is decrypted and downloaded, the binary file is generated, and finally added to the response stream.
在分块上传文件整个过程,不对分块文件进行合并处理,节约了服务器的内存资源,同时也最大限度的提高了大文件上传的速率及容错率,并对每个分块文件进行AES加密,且由于fastdfs本身分卷存储及含fileId命名的特性,集分块,加密,不可读文件名及随机存储路径,使文件存储的安全性,得到了充足的保障。In the whole process of uploading files in blocks, the block files are not merged, which saves the memory resources of the server, and also maximizes the speed and fault tolerance of large file uploads, and performs AES encryption on each block file. Moreover, due to the feature of fastdfs's own volume storage and fileId naming, block division, encryption, unreadable file name and random storage path, the security of file storage is fully guaranteed.
然而,现有技术分块文件的结构化信息记录数据会很多,且用户取消上传后,之前文件的分块文件不进行删除操作,易在服务器内形成分片文件的非结构化脏数据。However, there are a lot of structured information record data of the block file in the prior art, and after the user cancels the upload, the block file of the previous file will not be deleted, and it is easy to form unstructured dirty data of the block file in the server.
发明内容Contents of the invention
为解决已有技术存在的不足,本发明提供了一种基于fastdfs的大文件分块上传及加密存储方法,包括如下步骤:In order to solve the deficiencies in the prior art, the present invention provides a fastdfs-based large file block upload and encrypted storage method, including the following steps:
步骤S1:获取用户选择上传文件,并按一定大小对文件进行切块,记录切块数,唯一文件标识信息后,多线程并发式请求服务端;Step S1: Obtain the file that the user chooses to upload, cut the file into pieces according to a certain size, record the number of pieces, and the unique file identification information, and multi-thread concurrently request the server;
步骤S2:分块文件上传;Step S2: Upload the file in chunks;
步骤S3:针对上传好的分块文件,进行AES文件流加密;Step S3: Perform AES file stream encryption for the uploaded block file;
步骤S4:将加密后的分块文件执行最后的上传fastdfs操作。Step S4: Perform the final fastdfs upload operation on the encrypted block file.
其中,所述步骤S2包括如下步骤:Wherein, the step S2 includes the following steps:
步骤S21:构建chunk实体类内二进制文件;Step S21: Construct the binary file in the chunk entity class;
步骤S22:通过getBytes()函数获取上传后的文件二进制后计算其MD5值,与前端传递的上传之前的文件二进制的MD5值进行对比,确保文件无缺失。Step S22: Get the uploaded file binary through the getBytes() function, calculate its MD5 value, and compare it with the binary MD5 value of the pre-uploaded file transmitted by the front end to ensure that the file is not missing.
其中,所述步骤S2中,在上传过程中,以每个分块文件为单位进行MD5值校验,来判断所上传的文件是否存在于整个fastdfs内,以避免相同文件的重复存储。Wherein, in the step S2, during the upload process, the MD5 value check is performed on each block file to determine whether the uploaded file exists in the entire fastdfs, so as to avoid repeated storage of the same file.
其中,所述步骤S3包括如下步骤:Wherein, the step S3 includes the following steps:
步骤S31:生成指定算法密钥生成器的 KeyGenerator 对象,指定秘钥加密的算法"SHA1PRNG",以及密钥,取得转换完的AES专用密钥;Step S31: Generate the KeyGenerator object of the specified algorithm key generator, specify the algorithm "SHA1PRNG" for encryption with the secret key, and the key, and obtain the converted AES private key;
步骤S32:构建Cipher的AES加密实例;Step S32: constructing an AES encryption instance of Cipher;
步骤S33:通过Cipher的AES加密实例及文件输入流来构建CipherInputStream加密流;Step S33: Construct CipherInputStream encrypted stream through Cipher's AES encrypted instance and file input stream;
步骤S34:将加密流写入文件后取得文件二进制byte数据,至此文件流加密完成。Step S34: Obtain binary byte data of the file after writing the encrypted stream into the file, and the encryption of the file stream is now completed.
本发明提供的基于fastdfs的大文件分块上传及加密存储方法,基于大文件的分块上传原理,适配fastdfs文件服务,最大限度的提升大文件上传的容错率及上传速率。同时,本发明对每一个分块文件进行AES加密存储,结合fastdfs存储特性,集分块,加密,不可读文件名及随机存储路径,使文件存储的安全性,得到了充足的保障。The fastdfs-based large file block upload and encrypted storage method provided by the present invention is based on the block upload principle of large files, adapts to fastdfs file services, and maximizes the error tolerance rate and upload rate of large file uploads. At the same time, the present invention performs AES encrypted storage for each block file, combined with the fastdfs storage feature, integrates block, encryption, unreadable file name and random storage path, so that the security of file storage is fully guaranteed.
附图说明Description of drawings
图1为本发明的基于fastdfs的大文件分块上传及加密存储方法的实现流程图。Fig. 1 is the flow chart of the implementation of the fastdfs-based large file block upload and encrypted storage method of the present invention.
具体实施方式Detailed ways
为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。In order to have a further understanding of the technical solution and beneficial effects of the present invention, the technical solution of the present invention and its beneficial effects will be described in detail below in conjunction with the accompanying drawings.
本发明中,涉及到的术语在此解释及约定如下:In the present invention, the terms involved are explained and agreed as follows:
fastdfs:一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。fastdfs: An open source lightweight distributed file system, which manages files. Its functions include: file storage, file synchronization, file access (file upload, file download), etc., which solves the problems of large-capacity storage and load balancing.
分块上传:将要上传的文件切成一片片小的区块进行上传,然后服务端接收这些前端上传过来的小区块,存储到服务器存储文件的目录下,待上传完毕时将这些小区块合并成一个文件,并将已上传的这些区块删除。至此,上传过程结束。Upload in blocks: Cut the file to be uploaded into small blocks for uploading, and then the server receives these small blocks uploaded by the front end, stores them in the directory where the server stores files, and merges these small blocks into a file and delete the uploaded chunks. At this point, the upload process is over.
加密存储:对上传至文件服务的文件,在系统上传过程中,读取文件流并对该文件流进行加密后,再上传至最后的文件存储服务。Encrypted storage: For files uploaded to the file service, during the system upload process, the file stream is read and encrypted, and then uploaded to the final file storage service.
图1为本发明的基于fastdfs的大文件分块上传及加密存储方法的实现流程图,本发明基于fastdfs建立的系统提供了灵活高效且安全可靠的大文件上传策略,主要实现以下功能:Fig. 1 is the flow chart of the present invention based on fastdfs-based large file block uploading and encrypted storage method. The system established based on fastdfs provides a flexible, efficient, safe and reliable large file upload strategy, and mainly realizes the following functions:
1、基于Vue封装的定制化Uploader组件1. Customized Uploader component based on Vue package
获取用户选择上传文件,并按一定大小对文件进行切块,记录切块数,唯一文件标识等信息后,多线程并发式请求服务端。其中唯一文件标识由上传前从服务器获取,用于标识某些分块文件同属某一整个文件,在上传完成后,记录于分块信息表及业务文件表内作为文件信息的关联,即业务文件表通过此标识,在分块信息表中拿到该整个文件的所有分块文件信息,用于文件下载。Obtain the user's choice to upload the file, cut the file into pieces according to a certain size, record the number of pieces, unique file ID and other information, and then multi-thread concurrently request the server. Among them, the unique file identifier is obtained from the server before uploading, and is used to identify that some block files belong to a whole file. After the upload is completed, it is recorded in the block information table and the business file table as the association of file information, that is, the business file Through this identification, the table can get all the file information of the entire file in the block information table for file download.
2、分块文件上传2. Upload files in chunks
构建chunk实体类,借用java中spring框架接口“MultipartFile”接收请求体(接收请求体内所接收文件以及文件信息的放置位置涉及:http请求体body,binaryBody存放文件、textBody存放文件相关信息)内二进制文件。通过getBytes()函数获取文件二进制后计算其MD5值,与前端传递的上传之前的文件二进制的MD5值进行对比,确保文件无缺失。Construct the chunk entity class, and use the spring framework interface "MultipartFile" in java to receive the request body (the location of the received file and file information in the receiving request body involves: http request body, binaryBody stores files, and textBody stores file-related information) in the binary file . Get the file binary through the getBytes() function to calculate its MD5 value, and compare it with the MD5 value of the file binary before uploading passed by the front end to ensure that the file is not missing.
在上传过程中,以每个分块文件为单位进行MD5值校验,来判断所上传的文件是否存在于整个fastdfs内,以避免相同文件的重复存储,具体的:通过查询系统内所存储的文件的MD5值来判断是否上传过当前需要上传的文件,上传过则不再进行相关文件的上传,而是直接进行该文件系统业务数据写入,即实现秒传。其理论依据在于:分块文件信息存储至服务端时,分块文件信息中会包含整个分块文件的MD5,因此,用所欲上传的文件的MD5值匹配数据库内记录的之前上传过的整个文件,可以知道系统内是否存在与当前所欲上传文件MD5值相同的整个文件,若存在,则获取该所欲上传的文件信息,取得文件存放路径等信息后进行数据写入,而不再对当前所欲上传的文件执行上传操作,同时通知前端该所欲上传的文件已执行秒传,停止继续请求。经过其他系统内业务校验后,调用重构的fatdfs上传文件接口,加密上传该文件块(此步骤下文详述)。During the upload process, the MD5 value check is performed on each block file to determine whether the uploaded file exists in the entire fastdfs, so as to avoid repeated storage of the same file, specifically: by querying the stored in the system The MD5 value of the file is used to judge whether the file that needs to be uploaded has been uploaded. If it has been uploaded, the relevant file will not be uploaded, but the business data of the file system will be written directly, that is, the instant transmission will be realized. The theoretical basis is that when the chunked file information is stored on the server, the chunked file information will contain the MD5 of the entire chunked file. Therefore, the MD5 value of the file to be uploaded is used to match the entire previously uploaded file recorded in the database. File, you can know whether there is an entire file in the system with the same MD5 value as the current file to be uploaded. If it exists, obtain the file information to be uploaded, and write the data after obtaining the file storage path and other information, instead of The file to be uploaded currently performs the upload operation, and at the same time notifies the front end that the file to be uploaded has been uploaded in seconds, and stops continuing the request. After the business verification in other systems, call the reconstructed fatdfs upload file interface, and encrypt and upload the file block (this step will be described in detail below).
前端根据返回已上传分块信息,对比此过程中所上传的文件总分块数,相等时调用业务数据写入接口,在系统中写入整个文件(即上文所述的数据库内记录的之前上传过的整个文件)的相关信息,此时文件显示于系统列表中。According to the returned uploaded block information, the front end compares the total number of file blocks uploaded in this process, and calls the business data writing interface when they are equal, and writes the entire file in the system (that is, the previous records in the database mentioned above) The relevant information of the entire uploaded file), and the file is displayed in the system list at this time.
3、AES文件流加密3. AES file stream encryption
AES加密过程在实际上传fastdfs之前一步,对文件加密后再进行最后的上传fastdfs操作。The AES encryption process is one step before the actual upload to fastdfs, and the final upload to fastdfs is performed after encrypting the file.
加密过程如下:(1)首先生成指定算法密钥生成器的 KeyGenerator 对象,然后指定秘钥加密的算法"SHA1PRNG",以及密钥(文件MD5值,位数不足时进行补充),此过程采用128位密钥加密,最后取得转换完的AES专用密钥;(2)随后构建Cipher的AES加密实例,具体的,调用初始化方法传入转换完的AES专用密钥及加密模式参数完成Cipher实例初始化;(3)之后通过Cipher的AES加密实例及文件输入流(要加密的文件)来构建CipherInputStream加密流;(4)最后将加密流写入文件后取得文件二进制byte数据,至此文件流加密完成。最后调用fastdfs文件上传接口,返回如“group1/M00/04/E3/rB7U_WNpxrOAYeDLAAAEMKT_KlA520.txt”格式的不可读文件名及随机存储路径。The encryption process is as follows: (1) First generate the KeyGenerator object of the specified algorithm key generator, and then specify the algorithm "SHA1PRNG" for secret key encryption, and the key (file MD5 value, supplement when the number of digits is insufficient), this process uses 128 Bit key encryption, and finally obtain the converted AES private key; (2) Then build the Cipher AES encryption instance, specifically, call the initialization method to pass in the converted AES private key and encryption mode parameters to complete the initialization of the Cipher instance; (3) Then use Cipher's AES encryption instance and the file input stream (the file to be encrypted) to construct the CipherInputStream encrypted stream; (4) Finally, write the encrypted stream into the file to obtain the binary byte data of the file, and the file stream encryption is now complete. Finally, call the fastdfs file upload interface, and return the unreadable file name and random storage path in the format of "group1/M00/04/E3/rB7U_WNpxrOAYeDLAAAEMKT_KlA520.txt".
4、解密文件下载4. Download the decrypted file
针对业务表某个文件下载,首先通过业务表内的唯一文件标识,关联分块信息表取得该文件所有分块文件列表(分片文件片号顺序排列,方便之后解密完成后的挨个追加写入),含每一个分块文件的存储地址,接着调用fastdfs下载文件接口,取得文件二进制,此时的分块文件二进制为加密二进制,所以还需要对每一块分块文件的文件二进制调用系统封装的AES解密,最后将解密完成的文件二进制数据以可追加的方式写入response响应流。For the download of a file in the business table, firstly, through the unique file identifier in the business table, associate the block information table to obtain a list of all block files of the file (the block numbers of the file are arranged in sequence, which is convenient for adding and writing one by one after the decryption is completed. ), including the storage address of each block file, and then call the fastdfs download file interface to obtain the file binary. At this time, the block file binary is encrypted binary, so it is also necessary to call the system-encapsulated file binary for each block file AES decryption, and finally write the decrypted file binary data into the response response stream in an appendable manner.
本发明提供的基于fastdfs的大文件分块上传及加密存储方法,基于大文件的分块上传原理,适配fastdfs文件服务,最大限度的提升大文件上传的容错率及上传速率。同时,本发明对每一个分块文件进行AES加密存储,结合fastdfs存储特性,集分块,加密,不可读文件名及随机存储路径,使文件存储的安全性,得到了充足的保障。The fastdfs-based large file block upload and encrypted storage method provided by the present invention is based on the block upload principle of large files, adapts to fastdfs file services, and maximizes the error tolerance rate and upload rate of large file uploads. At the same time, the present invention performs AES encrypted storage for each block file, combined with the fastdfs storage feature, integrates block, encryption, unreadable file name and random storage path, so that the security of file storage is fully guaranteed.
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。Although the present invention has been described using the above-mentioned preferred embodiments, it is not intended to limit the protection scope of the present invention. Any person skilled in the art can make various changes relative to the above-mentioned embodiments without departing from the spirit and scope of the present invention. and modifications still belong to the protection scope of the present invention, so the protection scope of the present invention is defined by the claims as the criterion.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310400516.4ACN116389461B (en) | 2023-04-14 | 2023-04-14 | Large file block upload and encrypted storage method based on fastdfs |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310400516.4ACN116389461B (en) | 2023-04-14 | 2023-04-14 | Large file block upload and encrypted storage method based on fastdfs |
| Publication Number | Publication Date |
|---|---|
| CN116389461Atrue CN116389461A (en) | 2023-07-04 |
| CN116389461B CN116389461B (en) | 2025-07-11 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310400516.4AActiveCN116389461B (en) | 2023-04-14 | 2023-04-14 | Large file block upload and encrypted storage method based on fastdfs |
| Country | Link |
|---|---|
| CN (1) | CN116389461B (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117579573A (en)* | 2023-12-28 | 2024-02-20 | 福建升腾资讯有限公司 | A file transmission method and storage medium |
| CN120201089A (en)* | 2025-05-26 | 2025-06-24 | 四川乐为科技有限公司 | A multi-level cache and file batch download method, system and storage medium |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102355426A (en)* | 2011-06-30 | 2012-02-15 | 北京神州泰岳软件股份有限公司 | Method for transmitting off-line file and system |
| CN107528917A (en)* | 2017-09-13 | 2017-12-29 | 马上消费金融股份有限公司 | File storage method and device |
| CN111736775A (en)* | 2020-06-22 | 2020-10-02 | 平安医疗健康管理股份有限公司 | Multi-source storage method, device, computer system and storage medium |
| CN113986835A (en)* | 2021-10-27 | 2022-01-28 | 平安国际智慧城市科技股份有限公司 | Management method, device, equipment and storage medium for FastDFS distributed files |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102355426A (en)* | 2011-06-30 | 2012-02-15 | 北京神州泰岳软件股份有限公司 | Method for transmitting off-line file and system |
| CN107528917A (en)* | 2017-09-13 | 2017-12-29 | 马上消费金融股份有限公司 | File storage method and device |
| CN111736775A (en)* | 2020-06-22 | 2020-10-02 | 平安医疗健康管理股份有限公司 | Multi-source storage method, device, computer system and storage medium |
| CN113986835A (en)* | 2021-10-27 | 2022-01-28 | 平安国际智慧城市科技股份有限公司 | Management method, device, equipment and storage medium for FastDFS distributed files |
| Title |
|---|
| 王宝会;高远;: "面向BIM数据的分布式文件存储系统设计与实施", 土木建筑工程信息技术, no. 05, 15 October 2016 (2016-10-15)* |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117579573A (en)* | 2023-12-28 | 2024-02-20 | 福建升腾资讯有限公司 | A file transmission method and storage medium |
| CN120201089A (en)* | 2025-05-26 | 2025-06-24 | 四川乐为科技有限公司 | A multi-level cache and file batch download method, system and storage medium |
| CN120201089B (en)* | 2025-05-26 | 2025-08-22 | 四川乐为科技有限公司 | A multi-level cache and file batch downloading method, system and storage medium |
| Publication number | Publication date |
|---|---|
| CN116389461B (en) | 2025-07-11 |
| Publication | Publication Date | Title |
|---|---|---|
| US11587074B2 (en) | Recordation of device usage to blockchains | |
| CN112910840B (en) | A method and system for medical data storage and sharing based on consortium blockchain | |
| CN116389461A (en) | Large file block uploading and encryption storage method based on fastdfs | |
| CN110689349A (en) | A transaction hash value storage and search method and device in a blockchain | |
| CN111355705A (en) | Data auditing and safety duplicate removal cloud storage system and method based on block chain | |
| US20110289310A1 (en) | Cloud computing appliance | |
| US20120136960A1 (en) | Cloud Storage Data Access Method, Apparatus and System | |
| WO2017148316A1 (en) | File encryption method, file decryption method, electronic device, and storage medium | |
| CN115225409B (en) | Cloud data safety duplicate removal method based on multi-backup joint verification | |
| CN108123934B (en) | Mobile-end-oriented data integrity verification method | |
| CN104978239A (en) | Method, device and system for realizing multi-backup-data dynamic updating | |
| CN104809407A (en) | Method and system for encrypting, decrypting and verifying cloud storage front end data | |
| CN112698990A (en) | Method for deleting repeated data online during data backup | |
| CN111198784A (en) | Data storage method and device | |
| CN114995949A (en) | Container mirror image construction method and device | |
| CN116015767B (en) | A data processing method, device, equipment and medium | |
| CN110263556A (en) | A kind of encryption and decryption method and system of OA system data | |
| CN108337208B (en) | Cloud storage-based data protection method, replacement device, and cloud storage system | |
| CN112733189A (en) | System and method for realizing file storage server side encryption | |
| CN116094775B (en) | Ceph distributed file system server encryption system | |
| CN105208017A (en) | Memory information acquisition method | |
| CN116894013A (en) | Document processing methods, devices, storage media and electronic equipment | |
| CN105159919A (en) | Data multi-copy correlation method and system | |
| CN116015630A (en) | Lightweight and deduplicatable ciphertext integrity auditing method and system | |
| CN112613049B (en) | Unified cloud storage system based on block chain and method for realizing data security |
| 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 |