基于微服务的文件发送方法及装置制造方法及图纸

技术编号:27221969 阅读:14 留言:0更新日期:2021-02-04 11:41
本申请提供了一种基于微服务的文件发送方法及装置,该方法包括:在微服务架构中,通过客户端中安装的附件上传工具类,读取本地的目标文件的文件属性信息,并将目标文件转换为字节;根据文件属性信息、服务器当前的内存信息和服务器当前接收到的请求数量,生成对应于目标文件的单位文件大小;若目标文件的文件大小大于单位文件大小,将转换为字节的目标文件按照单位文件大小进行分割,得到子文件;每个子文件具有相应的子文件序号;通过附件上传工具类调用远程接口,发送子文件的字节至服务器,指示服务器按照各子文件的子文件序号之间的顺序,写入子文件的字节至存储系统,以合并子文件生成目标文件。本方案能够提高文件发送成功率。功率。功率。

【技术实现步骤摘要】
基于微服务的文件发送方法及装置


[0001]本申请涉及计算机
,特别是涉及一种基于微服务的文件发送方法及装置。

技术介绍

[0002]随着科学技术的飞速发展,各种先进技术不断涌现。微服务作为目前较为流行的软件服务架构,为了远程过程调用提供了良好易用的解决方案,广泛用于目前的软件开发当中。但在文件发送方面一直缺乏良好的支持。
[0003]传统方法中,基于微服务架构发送较大的文件时,容易造成服务器内存溢出,且易受网络波动影响,从而导致文件发送失败率较高,不适合大文件发送。因此,提高文件发送成功率是亟需解决的问题。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提高发送成功率的基于微服务的文件发送方法、装置、计算机设备和存储介质。
[0005]一种基于微服务的文件发送方法,其特征在于,所述方法包括:在微服务架构中,通过客户端中安装的附件上传工具类,读取本地的目标文件的文件属性信息,并将所述目标文件转换为字节;获取服务器当前的内存信息和所述服务器当前接收到的请求数量;根据所述文件属性信息、所述内存信息和所述请求数量,生成对应于所述目标文件的单位文件大小;若所述目标文件的文件大小大于所述单位文件大小,将转换为字节的目标文件按照所述单位文件大小进行分割,得到子文件;每个子文件具有相应的子文件序号;通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器;发送至服务器的各子文件,用于指示服务器按照各所述子文件的子文件序号之间的先后顺序,写入所述子文件的字节至存储系统,以合并所述子文件生成所述目标文件。
[0006]在其中一个实施例中,所述通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器,包括:通过所述附件上传工具类构造文件输入流;通过所述文件输入流,读取所述子文件的字节至客户端本地的内存中;通过所述附件上传工具类调用远程接口,采用多线程并发地发送所述内存中的所述子文件至所述服务器;或,通过所述附件上传工具类调用远程接口,按照所述子文件序号之间的先后顺序,发送所述内存中的所述子文件至所述服务器。
[0007]在其中一个实施例中,当按照子文件序号之间的先后顺序发送所述子文件时,所述方法还包括:
通过所述服务器确定所述存储系统的类型;当所述存储系统的类型为本地存储系统时,则按照所接收的各所述子文件的子文件序号之间的先后顺序,将各所述子文件依次地追加写入到所述服务器的本地存储系统,直至写入完毕后,组合生成所述目标文件。
[0008]在其中一个实施例中,所述方法还包括:当所述存储系统的类型为云端存储系统时,则将接收的各所述子文件暂存至所述服务器的本地,并在所述子文件发送完毕后,将暂存于所述服务器本地中的各所述子文件,按照所述子文件序号之间的先后顺序合并写入至云端存储系统中,生成所述目标文件。
[0009]在其中一个实施例中,所述方法还包括:针对每个待发送的当前子文件,根据所述当前子文件的子文件序号和子文件大小,判断所述当前子文件是否已发送;若所述当前子文件未发送,则执行所述通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器的步骤;若所述当前子文件已发送,则跳过所述当前子文件,以将下一个子文件作为当前子文件。
[0010]在其中一个实施例中,所述文件属性信息包括所述目标文件的文件大小;所述方法还包括:根据所述文件大小和所述单位文件大小,确定子文件的总分割数量;根据子文件的已发送数量和所述总分割数量之间的差异,判断是否所有子文件已发送完毕;若所有子文件未发送完毕,则继续执行所述通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器的步骤。
[0011]在其中一个实施例中,所述方法还包括:在所有子文件未发送完毕时,所述服务器将接收到的所述子文件的字节单独写入存储系统,以进行初始存储;每个所述子文件携带所述目标文件的唯一性参数;在所有所述子文件发送完毕后,服务器从存储系统中查找携带所述目标文件的唯一性参数的子文件,得到所述目标文件所对应的子文件;根据每个子文件在所述存储系统中的存储路径,分别构造相应的输入流;将每个所述子文件的输入流构造成序列输入流;根据所述序列输入流和预设的加密密钥,构造加密输入流;根据所述加密输入流将所述子文件的字节一并写入至存储系统,以合并生成所述目标文件。
[0012]一种基于微服务的文件发送装置,所述装置包括:字节转换模块,用于在微服务架构中,通过客户端中安装的附件上传工具类,读取本地的目标文件的文件属性信息,并将所述目标文件转换为字节;分割模块,用于获取服务器当前的内存信息和所述服务器当前接收到的请求数量;根据所述文件属性信息、所述内存信息和所述请求数量,生成对应于所述目标文件的单位文件大小;若所述目标文件的文件大小大于所述单位文件大小,将转换为字节的目标文件按
照所述单位文件大小进行分割,得到子文件;每个子文件具有相应的子文件序号;发送模块,用于通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器;发送至服务器的各子文件,用于指示服务器按照各所述子文件的子文件序号之间的先后顺序,写入所述子文件的字节至存储系统,以合并所述子文件生成所述目标文件。
[0013]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请各实施例中所述的基于微服务的文件发送方法的步骤。
[0014]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请各实施例中所述的基于微服务的文件发送方法的步骤。
[0015]上述基于微服务的文件发送方法、装置、计算机设备和存储介质,在微服务架构中,通过客户端中安装的附件上传工具类,读取本地的目标文件的文件属性信息,并将所述目标文件转换为字节。获取服务器当前的内存信息和所述服务器当前接收到的请求数量;根据所述文件属性信息、所述内存信息和所述请求数量,生成对应于所述目标文件的单位文件大小。即,根据文件属性、服务器的内存以及接收的请求数量,动态地确定待分割成的单位文件大小,能够更加灵活、准确地确定分割成的子文件的大小。若所述目标文件的文件大小大于所述单位文件大小,将转换为字节的目标文件按照所述单位文件大小进行分割,得到子文件;每个子文件具有相应的子文件序号;通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器;发送至服务器的各子文件,用于指示服务器按照各所述子文件的子文件序号之间的先后顺序,写入所述子文件的字节至存储系统,以合并所述子文件生成所述目标文件。单位文件大小是通过结合文件属性以及服务器的使用情况动态确定的,所以,动态确定的单位文件大小能够更加符合服务器的需求,因而,基于准确地单位文件大小将目标文件进行分割成小份的文件进行发送,避免了文件过大造成服务器压力过大,且降低了网络波动所造成的影响,从而提高了文件发送成功率。
附图说明
[0016]图1为一个实施例中基于微服务的文件发送方法的应用环境图;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微服务的文件发送方法,其特征在于,所述方法包括:在微服务架构中,通过客户端中安装的附件上传工具类,读取本地的目标文件的文件属性信息,并将所述目标文件转换为字节;获取服务器当前的内存信息和所述服务器当前接收到的请求数量;根据所述文件属性信息、所述内存信息和所述请求数量,生成对应于所述目标文件的单位文件大小;若所述目标文件的文件大小大于所述单位文件大小,将转换为字节的目标文件按照所述单位文件大小进行分割,得到子文件;每个子文件具有相应的子文件序号;通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器;发送至服务器的各子文件,用于指示服务器按照各所述子文件的子文件序号之间的先后顺序,写入所述子文件的字节至存储系统,以合并所述子文件生成所述目标文件。2.根据权利要求1所述的方法,其特征在于,所述通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器,包括:通过所述附件上传工具类构造文件输入流;通过所述文件输入流,读取所述子文件的字节至客户端本地的内存中;通过所述附件上传工具类调用远程接口,采用多线程并发地发送所述内存中的所述子文件至所述服务器;或,通过所述附件上传工具类调用远程接口,按照所述子文件序号之间的先后顺序,发送所述内存中的所述子文件至所述服务器。3.根据权利要求2所述的方法,其特征在于,当按照子文件序号之间的先后顺序发送所述子文件时,所述方法还包括:通过所述服务器确定所述存储系统的类型;当所述存储系统的类型为本地存储系统时,则按照所接收的各所述子文件的子文件序号之间的先后顺序,将各所述子文件依次地追加写入到所述服务器的本地存储系统,直至写入完毕后,组合生成所述目标文件。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述存储系统的类型为云端存储系统时,则将接收的各所述子文件暂存至所述服务器的本地,并在所述子文件发送完毕后,将暂存于所述服务器本地中的各所述子文件,按照所述子文件序号之间的先后顺序合并写入至云端存储系统中,生成所述目标文件。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:针对每个待发送的当前子文件,根据所述当前子文件的子文件序号和子文件大小,判断所述当前子文件是否已发送;若所述当前子文件未发送,则执行所述通过所述附件上传工具类调用远程接口,发送所述子文件的字节至所述服务器的步骤;若所述当前子文件已发送,则...

【专利技术属性】
技术研发人员:杨健伟徐霞林殿兴张社丽张越良
申请(专利权)人:深圳市蓝凌软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1