CN109002504A - 一种基于Docker镜像的文档转码方法 - Google Patents
一种基于Docker镜像的文档转码方法 Download PDFInfo
- Publication number
- CN109002504A CN109002504A CN201810697924.XA CN201810697924A CN109002504A CN 109002504 A CN109002504 A CN 109002504A CN 201810697924 A CN201810697924 A CN 201810697924A CN 109002504 A CN109002504 A CN 109002504A
- Authority
- CN
- China
- Prior art keywords
- transcoding
- document
- server
- docker
- mirror image
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于Docker镜像的文档转码方法,包括:在系统上安装部署Docker;在所述Docker中安装libreoffice和JodConverter并进行配置形成一个Docker镜像;将所述Docker镜像上传至镜像库;安装具备转码服务的Docker镜像的处理机为转码服务器;用户通过客户端向服务端提交文档转码请求和待转码文档;服务端开启所述转码服务器并启动Docker对文档进行转码;服务端将文档转码成功后的pdf文档回传给客户端。本发明解决了将多种格式文档统一转码成pdf文档的问题,解决了文档转码过程中步骤繁琐、流程受限、系统配置和安装部署复杂的问题,提高了文档的转码效率和转码成功率。
Description
技术领域
本发明涉及计算机信息处理领域,尤其是一种基于Docker镜像的文档转码方法。
背景技术
随着互联网和办公电子化的发展,我们每天都会接触很多种类文档,其中以office类为主,同时,文档的浏览器在线预览已经成为电子办公和个人生活中非常重要的需求和服务。目前实现多种格式文档在线预览的方式,包括:第一种,利用flashpaper直接将多种格式文档转换为swf文件,然后利用flexpaper预览flash文件;第二种,利用office转Html、pdf转图片,在线预览文件Html文件;第三种,第三方ActiveX浏览器控件;第四种,微软的 Office365;第五种,浏览器直接调用本地Office或PDF软件打开。
这些方式导致文档转码过程步骤繁琐、流程受限、系统配置和安装部署复杂的问题。其中,通过浏览器直接浏览pdf文档的特性实现在线预览为一种较好的处理方式,但是,如何将多种格式文档统一转码成pdf格式文档是一个难点问题。
发明内容
为了克服上述现有技术中的缺陷,本发明提供一种基于Docker镜像的文档转码方法,解决了将多种格式文档统一转码成pdf文档的问题,解决了文档转码过程中步骤繁琐、流程受限、系统配置和安装部署复杂的问题,提高了文档的转码效率和转码成功率。
为实现上述目的,本发明采用以下技术方案,包括:
一种基于Docker镜像的文档转码方法,其特征在于,包括以下步骤:
S1,在系统中安装部署Docker,所述Docker为一个轻量级的虚拟机,即为一个进程容器;
S2,将libreoffice和JodConverter安装于所述Docker中,并对所述libreoffice和JodConverter的镜像和端口均进行配置,配置完成后形成一个具备转码服务的Docker镜像;所述libreoffice为跨平台的办公室软件套件;所述JodConverter为转换工具,用于将多种格式文档转换为pdf文档;
S3,将具备转码服务的所述Docker镜像上传至镜像库,安装具备转码服务的Docker镜像的处理机为转码服务器,用户在所述转码服务器上通过镜像库下载并安装具备转码服务的Docker镜像;
S4,用户在系统的客户端采用post方式将文档转码请求和待转码文档上传至系统的服务端;系统的服务端接收客户端发送的文档转码请求和待转码文档并开启服务端的转码服务器;
S5,转码服务器启动Docker,安装在Docker中的Jodconverter调用 libreoffice执行转码任务,将待转码文档统一转化为浏览器可直接浏览的pdf 文档。
S6,转码完成后,服务端将pdf文档回传给客户端,并将pdf文档存入服务端的云存储服务器。
步骤S2中,多种格式文档包括:office文档、txt文档、网页文档、数据库文档。
步骤S3中,用户在多台处理机上分别安装具备转码服务的Docker镜像制作多台转码服务器。
步骤S4中,所述客户端包括:浏览器、手机、ipad;所述服务端包括:转码服务器、Nginx服务器、云存储服务器,所述Nginx服务器为负载均衡服务器。
步骤S4中,用户在服务端上封装一个对外开放的Web接口,并配置与Web 接口对接的统一资源定位符URL,客户端将文档转码请求和待转码文档通过所述 URL发送给服务端。
步骤S5中,转码服务器根据文档转码请求的数量在转码服务器内启动相应数量的Docker,即文档转码请求的数量和启动Docker的数量相同;且所述 Docker对CPU、内存、磁盘均具有隔离特性,Docker之间相互隔断、互不影响。
当用户在客户端向服务端发送的文档转码请求出现高并发情况时,服务端会自动启动Nginx服务器进行负载均衡;所述高并发情况为文档转码请求数量达到了转码服务器的Docker启动上限数量;所述负载均衡为根据文档转码的高并发请求数量和转码服务器的Docker启动上限数量,开启一定数量的转码服务器并组成转码服务器集群,并将文档的转码任务分发给转码服务器集群中的各 Docker上。
步骤S5中,在文档转码过程中实时进行转码记录:用设定的字符分别表示转码开始、正在转码、转码结束、转码超时、转码失败;将转码记录和转码成功后的pdf文档存储在服务端的云存储服务器;转码过程中服务端持续的进行转码查询,遇到文档转码异常情况服务端及时将转码记录反馈给客户端。
在待转码文档进行转码前,服务端首先会查看待转码文档之前是否已经进行过转码,即查询云存储服务器中是否存在待转码文档的转码记录和转码成功后的pdf文档,若是,则直接从云存储服务器调出转码后的pdf文档回传给客户端,即转码服务器不进行转码;若否,则转码服务器对待转码文档进行转码。
文档转码若遇到异常,服务端给用户提供下载功能,用户下载转码异常的文档并进行处理。
本发明的优点在于:
(1)本发明提供的文档转码方法只需将待转码文档发送到Docker进程容器,Docker的libreofficehe和Jodconverter会自动完成转码并返回转码后的 pdf文档,方便快捷,简化了转码过程中繁琐的步骤。
(2)本发明将office文档、txt文档、网页文档、数据库文档均统一转码为pdf文档,实现了多种格式文档的浏览器在线预览。
(3)本发明充分利用Docker对资源的隔离特性,简化了复杂的系统配置和安装部署。
(4)用户通过浏览器、手机、iPad向服务端发送文档转码请求,提高了用户体验。
(5)配置与服务端的Web接口对接的URL统一资源定位符,用统一的格式来描述各种信息资源,包括文件、服务器的地址和目录,方便用户准确的将文档转码请求提交给服务端。
(6)服务端的转码服务器会根据文档转码的请求数量开启相同数量的 Docker,以满足文档转码的需要,避免有文档转码请求处于等待状态,按需开启,合理利用了服务端的性能和资源。
(7)服务端的Nginx服务器对高并发的文档转码请求进行负载均衡,将文档的转码任务分发给转码服务器集群中的各Docker上,转码任务之间彼此不受干扰,不会因为一个转码任务的失败导致其他转码任务一直处于阻塞状态,无法进行正常的转码,提高了转码的效率。
(8)服务端在文档转码过程中实时进行转码记录,遇到文档转码异常情况会及时将转码记录反馈给客户端,保障了文档转码过程的顺利进行。
(9)转码成功的pdf文档存储到云存储服务器,且服务端在待转码文档进行转码之前查看云存储服务器是否存在该待转码文档的转码记录和转码成功后的pdf文档,以防止待转码文档进行没必要的二次转码,提高了转码效率。
(10)服务端提供转码异常文档的下载通道,方便用户下载转码异常的文档并进行处理。
附图说明
图1为本发明的整体示意图。
图2为本发明的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由图1和图2所示,一种基于Docker镜像的文档转码方法,包括以下步骤:
S1,在系统中安装部署Docker。
S2,将libreoffice和JodConverter安装于Docker中,并对libreoffice 和JodConverter的镜像和端口均进行配置,配置完成后形成一个具备转码服务的Docker镜像。
S3,将具备转码服务的Docker镜像上传至镜像库。
S4,用户在处理机上分别下载安装具备转码服务的Docker镜像,安装过具备转码服务的Docker镜像的处理机为服务端的转码服务器。
S5,在服务端封装一个对外开放的Web接口,并配置与Wbe接口对接的URL 统一资源定位符。
S6,用户在系统客户端采用post方式将文档转码请求和待转码文档并通过 URL发送给服务端。
S7,服务端接收客户端发送的文档转码请求和待转码文档,服务端查找云存储服务器是否存在待转码文档的转码记录和转码成功后的pdf文档,若存在,则执行步骤S8;否则,执行步骤S9。
S8,服务端直接将云存储服务器中转码成功后的pdf文档回传给客户端。
S9,服务端判断客户端发送的文档转码请求是否出现高并发的情况,若否,则执行步骤S10;若是,则执行步骤S11。
S10,服务端开启一个转码服务器,根据文档转码请求的数量在转码服务器内启动相应数量的Docker,即文档转码请求的数量和启动Docker的数量相同。
S11,服务端自动启动Nginx服务器进行负载均衡,根据文档转码的高并发请求数量和转码服务器启动Docker的上限数量开启一定数量的转码服务器并组成转码服务器集群,将文档的转码任务分发给转码服务器集群中的各Docker上。
S12,安装在Docker中的Jodconverter就会调用libreoffice执行转码任务,将待转码文档统一转码为浏览器可直接浏览的pdf文档;在文档转码过程中,服务端实时进行转码记录:用0、1、2、3、99分别表示转码开始、正在转码、转码结束、转码超时、转码失败;
S13,服务端持续的进行文档转码查询,判断文档转码是否出现异常情况,若否,则执行步骤S14;若是,则执行步骤S15。
S14,服务端将转码记录和转码成功后的pdf文档存储在服务端的云存储服务器,并将转码成功后的pdf文档回传到客户端。
S15,服务端将转码异常文档的转码记录反馈给客户端,同时,服务端向用户提供转码异常文档的下载通道,用户下载转码异常文档并进行处理。
其中,步骤S1-S5中为用户人为操作对系统的配置和安装部署。
步骤S9中,所述高并发情况为文档转码请求数量达到了转码服务器的 Docker启动上限数量,本实施例中,启动Docker所占用资源达到转码服务器可利用资源的80%即达到Docker启动上限数量。
步骤S13中,所述文档转码异常包括转码超时和转码失败。
步骤S15中,用户下载转码异常文档并进行处理,所述处理:根据转码记录提示,判断文档转码异常的原因,若为网络的原因,则确定网络畅通后再次提交请求进行转码;若为文档格式不支持的原因,则确保文档为可支持的格式。
以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。
Claims (10)
1.一种基于Docker镜像的文档转码方法,其特征在于,包括以下步骤:
S1,在系统中安装部署Docker,所述Docker为一个轻量级的虚拟机,即为一个进程容器;
S2,将libreoffice和JodConverter安装于所述Docker中,并对所述libreoffice和JodConverter的镜像和端口均进行配置,配置完成后形成一个具备转码服务的Docker镜像;所述libreoffice为跨平台的办公室软件套件;所述JodConverter为转换工具,用于将多种格式文档转换为pdf文档;
S3,将具备转码服务的所述Docker镜像上传至镜像库,安装具备转码服务的Docker镜像的处理机为转码服务器,用户在所述转码服务器上通过镜像库下载并安装具备转码服务的Docker镜像;
S4,用户在系统的客户端采用post方式将文档转码请求和待转码文档上传至系统的服务端;系统的服务端接收客户端发送的文档转码请求和待转码文档并开启服务端的转码服务器;
S5,转码服务器启动Docker,安装在Docker中的Jodconverter调用libreoffice执行转码任务,将待转码文档统一转化为浏览器可直接浏览的pdf文档。
S6,转码完成后,服务端将pdf文档回传给客户端,并将pdf文档存入服务端的云存储服务器。
2.根据权利要求1所述的一种基于Docker镜像的文档转码方法,其特征在于,步骤S2中,多种格式文档包括:office文档、txt文档、网页文档、数据库文档。
3.根据权利要求1所述的一种基于Docker镜像的文档转码方法,其特征在于,步骤S3中,用户在多台处理机上分别安装具备转码服务的Docker镜像制作多台转码服务器。
4.根据权利要求1所述的一种基于Docker镜像的文档转码方法,其特征在于,步骤S4中,所述客户端包括:浏览器、手机、ipad;所述服务端包括:转码服务器、Nginx服务器、云存储服务器,所述Nginx服务器为负载均衡服务器。
5.根据权利要求1所述的一种基于Docker镜像的文档转码方法,其特征在于,步骤S4中,用户在服务端上封装一个对外开放的Web接口,并配置与Web接口对接的统一资源定位符URL,客户端将文档转码请求和待转码文档通过所述URL发送给服务端。
6.根据权利要求1所述的一种基于Docker镜像的文档转码方法,其特征在于,步骤S5中,转码服务器根据文档转码请求的数量在转码服务器内启动相应数量的Docker,即文档转码请求的数量和启动Docker的数量相同;且所述Docker对CPU、内存、磁盘均具有隔离特性,Docker之间相互隔断、互不影响。
7.根据权利要求4或6所述的一种基于Docker镜像的文档转码方法,其特征在于,当用户在客户端向服务端发送的文档转码请求出现高并发情况时,服务端会自动启动Nginx服务器进行负载均衡;所述高并发情况为文档转码请求数量达到了转码服务器的Docker启动上限数量;所述负载均衡为根据文档转码的高并发请求数量和转码服务器的Docker启动上限数量,开启一定数量的转码服务器并组成转码服务器集群,并将文档的转码任务分发给转码服务器集群中的各Docker上。
8.根据权利要求1所述的一种基于Docker镜像的文档转码方法,其特征在于,步骤S5中,在文档转码过程中实时进行转码记录:用设定的字符分别表示转码开始、正在转码、转码结束、转码超时、转码失败;将转码记录和转码成功后的pdf文档存储在服务端的云存储服务器;转码过程中服务端持续的进行转码查询,遇到文档转码异常情况服务端及时将转码记录反馈给客户端。
9.根据权利要求8所述的一种基于Docker镜像的文档转码方法,其特征在于,在待转码文档进行转码前,服务端首先会查看待转码文档之前是否已经进行过转码,即查询云存储服务器中是否存在待转码文档的转码记录和转码成功后的pdf文档,若是,则直接从云存储服务器调出转码后的pdf文档回传给客户端,即转码服务器不进行转码;若否,则转码服务器对待转码文档进行转码。
10.根据权利要求8所述的一种基于Docker镜像的文档转码方法,其特征在于,文档转码若遇到异常,服务端给用户提供下载功能,用户下载转码异常的文档并进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697924.XA CN109002504A (zh) | 2018-06-29 | 2018-06-29 | 一种基于Docker镜像的文档转码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697924.XA CN109002504A (zh) | 2018-06-29 | 2018-06-29 | 一种基于Docker镜像的文档转码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109002504A true CN109002504A (zh) | 2018-12-14 |
Family
ID=64602141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810697924.XA Pending CN109002504A (zh) | 2018-06-29 | 2018-06-29 | 一种基于Docker镜像的文档转码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109002504A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035405A (zh) * | 2020-08-29 | 2020-12-04 | 平安科技(深圳)有限公司 | 一种文档转码方法、装置、调度服务器和存储介质 |
CN113873279A (zh) * | 2021-09-27 | 2021-12-31 | 广州中工水务信息科技有限公司 | 视频数据解码方法、系统和存储介质 |
CN114679593A (zh) * | 2022-02-09 | 2022-06-28 | 上海哔哩哔哩科技有限公司 | 直播转码处理方法、装置及系统 |
CN117055880A (zh) * | 2023-08-22 | 2023-11-14 | 广东保伦电子股份有限公司 | 一种基于容器化部署的文档转码方法、装置及存储介质 |
-
2018
- 2018-06-29 CN CN201810697924.XA patent/CN109002504A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035405A (zh) * | 2020-08-29 | 2020-12-04 | 平安科技(深圳)有限公司 | 一种文档转码方法、装置、调度服务器和存储介质 |
CN112035405B (zh) * | 2020-08-29 | 2023-10-13 | 平安科技(深圳)有限公司 | 一种文档转码方法、装置、调度服务器和存储介质 |
CN113873279A (zh) * | 2021-09-27 | 2021-12-31 | 广州中工水务信息科技有限公司 | 视频数据解码方法、系统和存储介质 |
CN114679593A (zh) * | 2022-02-09 | 2022-06-28 | 上海哔哩哔哩科技有限公司 | 直播转码处理方法、装置及系统 |
CN114679593B (zh) * | 2022-02-09 | 2023-09-22 | 上海哔哩哔哩科技有限公司 | 直播转码处理方法、装置及系统 |
CN117055880A (zh) * | 2023-08-22 | 2023-11-14 | 广东保伦电子股份有限公司 | 一种基于容器化部署的文档转码方法、装置及存储介质 |
CN117055880B (zh) * | 2023-08-22 | 2024-05-03 | 广东保伦电子股份有限公司 | 一种基于容器化部署的文档转码方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109002504A (zh) | 一种基于Docker镜像的文档转码方法 | |
US9560120B1 (en) | Architecture for incremental deployment | |
CN101206590B (zh) | 用于扩展用于通信的Unix域套接字的方法、装置和系统 | |
US8260913B2 (en) | Reading a file from a cloud storage solution | |
US8296338B2 (en) | Method for a cloud-based meta-file system to virtually unify remote and local files across a range of devices' local file systems | |
US8166476B2 (en) | On-demand access to a virtual representation of a physical computer system | |
US6023722A (en) | High-availability WWW computer server system with pull-based load balancing using a messaging and queuing unit in front of back-end servers | |
US8234372B2 (en) | Writing a file to a cloud storage solution | |
US8548976B2 (en) | Balancing load requests and failovers using a UDDI proxy | |
US7342928B2 (en) | Method and system for accessing a peer-to-peer network | |
US20020174206A1 (en) | Web-based file manipulating system | |
US20110276538A1 (en) | Cloud storage solution for reading and writing files | |
CN110557284B (zh) | 基于客户端网关的数据聚合方法及装置 | |
US9912747B2 (en) | Browser and system for download and download method | |
CN101727449A (zh) | 利用远程应用处理本地文件的系统和方法 | |
US9229740B1 (en) | Cache-assisted upload proxy | |
CN103049448B (zh) | 文件管理方法和系统 | |
US20030212962A1 (en) | Thin client-server architecture for automated machine translation | |
WO2001054369A2 (en) | System and method for computer network uploading | |
CN107704256A (zh) | 一种Ubuntu上实现Python依赖系统库自动化安装的方法 | |
CN108874472B (zh) | 一种用户头像的优化显示方法及系统 | |
US8788593B1 (en) | Systems and methods for downloading attachments | |
US7275078B2 (en) | Distributed web CGI architecture | |
EP1672536B1 (en) | Enhanced internet session management protocol | |
Cisco | Release Notes for the Cisco Content Router 4400 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181214 |
|
RJ01 | Rejection of invention patent application after publication |