文件上传方法、电子设备及计算机程序产品技术

技术编号:33704596 阅读:9 留言:0更新日期:2022-06-06 08:24
本申请公开了一种文件上传方法、电子设备及计算机程序产品,S3FS服务上传目标文件时,先确定持久化数据库中是否存在目标文件的历史上传记录,从而确定出本次上传之前是否已经上传过目标文件的部分分片。若之前已经上传过目标文件的部分分片,则继续确定目标文件是否已更新。若目标文件未更新,则续传目标文件,即仅向S3云端上传目标文件的部分分片,部分分片是上次上传时未成功上传的分片。采用该种方案,S3FS服务将待上传的目标文件临时存储在本地,通过断点续传的方式上传文件,速度快且降低资源消耗。低资源消耗。低资源消耗。

【技术实现步骤摘要】
文件上传方法、电子设备及计算机程序产品


[0001]本申请涉及云存储
,特别涉及一种文件上传方法、电子设备及计算机程序产品。

技术介绍

[0002]目前,主流的存储类型主要有三种:块存储、文件存储和对象存储。其中,对象存储有着块存储的高速直接访问磁盘的优点,同时兼具文件存储的分布式共享特点。因此,对象存储正逐渐在云计算存储服务领域占据越来越重要的地位。
[0003]对象存储本质上是网络存储系统,一般通过应用程序接口(Application Programming Interface,API)的形式进行访问。但是,普通用户很难通过写代码调用API的形式访问对象存储系统。S3FS服务是google开发的一款支持将对象存储中的存储桶(bucket)以文件形式导出的文件系统接口,兼容可移植操作系统接口(Portable Operating System Interface,POSIX)语义。S3FS服务基于用户空间文件系统(File system in Userspace,FUSE)开发,允许Linux和Mac OsX将S3云端的存储桶挂载在本地,S3FS服务能够保持对象原来的格式。因此,可借助S3FS服务实现将对象存储转换为文件存储。这样一来,普通用户就可以像访问文件存储系统一样访问对象存储系统。
[0004]当用户像访问文件存储系统一样访问对象存储系统时,可能会新建文件、修改文件等,这就需要将新建的文件或修改后的文件上传至S3云端。通常的做法是:将该些待上传的文件临时保存在部署了S3FS服务的电子设备的内存,从内存上传至S3云端。
[0005]文件上传过程中,若发生S3FS服务崩溃、网络中断等问题,则导致文件上传失败,需要再次将整个文件重新写入内存并上传,耗时长且占用大量资源。

技术实现思路

[0006]本申请提供一种文件上传方法、电子设备及计算机程序产品,S3FS服务将待上传的目标文件临时存储在本地,通过断点续传的方式上传文件,速度快且降低资源消耗。
[0007]第一方面,本申请实施例提供一种文件上传方法,应用于S3FS服务,所述方法包括:
[0008]确定持久化数据库中是否存在目标文件的历史上传记录,所述持久化数据库是为所述S3FS服务创建的用于保存上传记录的本地数据库,所述历史上传记录用于记录第一分片上传请求关联的参数,所述第一分片上传请求是所述S3FS服务上次向所述S3云端发送的分片上传请求;
[0009]当所述持久化数据库中存在所述历史上传记录时,确定所述目标文件是否已更新;
[0010]当所述目标文件未更新时,续传所述目标文件。
[0011]第二方面,本申请实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述
电子设备实现如上第一方面或第一方面各种可能的实现方式所述的方法。
[0012]第三方面,本申请实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第一方面或第一方面各种可能的实现方式所述的方法。
[0013]本申请实施例提供的文件上传方法、电子设备及计算机程序产品,S3FS服务上传目标文件时,先确定持久化数据库中是否存在目标文件的历史上传记录,从而确定出本次上传之前是否已经上传过目标文件的部分分片。若之前已经上传过目标文件的部分分片,则继续确定目标文件是否已更新。若目标文件未更新,则续传目标文件,即仅向S3云端上传目标文件的部分分片,部分分片是上次上传时未成功上传的分片。采用该种方案,S3FS服务将待上传的目标文件临时存储在本地,通过断点续传的方式上传文件,速度快且降低资源消耗。
附图说明
[0014]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1是本申请实施例提供的文件上传方法所适用的网络架构示意图;
[0016]图2是本申请实施例提供的文件上传方法的流程图;
[0017]图3是本申请实施例提供的文件上传方法的另一个流程图;
[0018]图4是本申请实施例提供的文件上传方法的流程图

[0019]图5是本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0020]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0021]为了方便普通用户使用对象存储系统,运维人员利用S3FS等开源软件将对象存储转换为文件存储。这样一来,普通用户就可以像访问文件存储系统一样访问对象存储系统。文件存储系统含有大量的元数据(metadata),元数据是用于描述数据的数据,主要是描述文件的属性,如文件的属主、权限、修改时间、创建时间等。
[0022]现有的S3FS等开源软件部署在用户的终端设备或服务器等电子设备上,当用户像访问文件存储系统一样访问对象存储系统时,可能会新建文件、修改文件等,这就需要将新建的文件或修改后的文件上传至S3云端。上传过程中,S3FS服务将待上传的文件写入电子设备的内存后,将文件从内存中上传至S3云端。
[0023]上述上传文件的方式为同步方式,即S3FS服务将文件写入内存后,将内存中的文件同步上传至S3云端。然而,上传过程中,若S3FS服务崩溃或S3FS服务与S3云端之间的网络出现问题,则文件上传失败。下次重传时,需要S3FS服务再次将整个文件重新写入内存并上传,耗时长且占用大量的带宽、内存等资源。
[0024]基于此,本申请实施例提供一种文件上传方法、电子设备及计算机程序产品,S3FS服务将待上传的目标文件临时存储在本地,通过断点续传的方式上传文件,速度快且降低
资源消耗。
[0025]本申请实施例相关名词解释如下:
[0026]存储桶(bucket):用户用来管理存储对象的存储空间,类似于文件存储系统里面根目录或磁盘分区,对象存储系统通过存储桶来管理对象。
[0027]文件存储系统:也称之为文件系统,是一种存储和组织计算机数据的方法,它使得对文件的存取和查找变得容易。文件存储系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件存储系统来保存数据只需要记住这个文件的所属目录和文件名。
[0028]元数据:用于描述数据的数据,主要是描述文件的属性,如文件的属主、权限、修改时间、创建时间等。
[0029]文件:可以称之为数据,每个文件有自己的元数据。本申请实施例中,文件存储系统存储的数据称之为文件,对象存储系统存储的数据称之为对象。可以理解的是,同一份数据即可基于文件进行管理,也可基于对象进行管理,用户对文件的操作,可以转换为用户对对象的操作。例如,用户新增一个文本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件上传方法,其特征在于,应用于S3FS服务,所述方法包括:确定持久化数据库中是否存在目标文件的历史上传记录,所述持久化数据库是为所述S3FS服务创建的用于保存上传记录的本地数据库,所述历史上传记录用于记录第一分片上传请求关联的参数,所述第一分片上传请求是所述S3FS服务上次向所述S3云端发送的分片上传请求;当所述持久化数据库中存在所述历史上传记录时,确定所述目标文件是否已更新;当所述目标文件未更新时,续传所述目标文件。2.根据权利要求1所述的方法,其特征在于,所述当所述目标文件未更新时,续传所述目标文件,包括:从所述历史上传记录中确定出分片大小;根据所述分片大小将所述目标文件切片以得到多个分片;从所述多个分片中确定出未上传至所述S3云端的目标分片;向所述S3云端上传所述目标分片。3.根据权利要求2所述的方法,其特征在于,所述向所述S3云端上传所述目标分片,包括:当所述目标分片为多个时,根据记录在所述历史上传记录中的、所述第一分片上传请求关联的参数封装各目标分片,以得到多个分片结构体;采用并发方式向所述S3云端发送各所述分片结构体。4.根据权利要求2所述的方法,其特征在于,还包括:若多个目标分片中存在未成功上传的重传分片时,则重新上传所述重传分片;当所述重传分片重传预设次数后未成功上传时,向所述S3云端发送中断请求,以使得所述S3云端删除多个目标分片中已成功上传的目标分片的分片结构体;从所述持久化数据库中删除所述历史上传记录,并在本地日志中记录所述目标文件未成功上传。5.根据权利要求1

3任一项所述的方法,其特征在于,所述当所述目标文件未更新时,续传所述目标文件之后,还包括:当所述目标文件的各分片均上传至所述S3云端后,向所述S3云端发送完成请求,以使得所述S3云端合并各分片得到所述目标文件;从所述持久化数据库中删除所述历史上传记录。6.根据权利要求1

4任一项所述的方法,其特征在于,还包括:当所述目标文件已更新时,向所述S3云端发送中断请求,以指示所述S3云端删除所述目标文件的多个目标分片中已成功上...

【专利技术属性】
技术研发人员:杜若峰
申请(专利权)人:深圳爱捷云科技有限公司
类型:发明
国别省市:

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

1