一种避免浪费第三方云存储空间的方法

文档序号:1755022 发布日期:2019-11-29 浏览:1次 >En<

阅读说明:本技术 一种避免浪费第三方云存储空间的方法 (A method of avoiding waste third party cloud memory space ) 是由 毕明 于 2019-08-15 设计创作,主要内容包括:本发明公开了一种避免浪费第三方云存储空间的方法。本发明设通知消息中的文件在服务端保存的属性有:文件哈希值、文件大小、文件类型、文件存储方式、文件网络地址、文件是否已发送属性。本发明采用先上传至本地服务器,待用户确认发送消息后再上传文件至第三方云存储空间的方法,杜绝了用户在消息发送前删除文件、修改文件带来的第三方存储空间和流量的浪费。本发明当有相同文件哈希值的文件出现时,不再进行上传操作,提高了效率并避免了重复文件上传带来的第三方存储空间和流量的浪费。(The invention discloses a kind of methods for avoiding waste third party cloud memory space.The present invention sets the file in notification message to be had in the attribute that server-side saves: whether file cryptographic Hash, file size, file type, document storage mode, file network address, file have sent attribute.The present invention is using local server is first uploaded to, and upper transmitting file has prevented the waste that user deletes file, modifies file bring third party memory space and flow before message is sent to the method for third party cloud memory space again after user confirms and sends message.The present invention no longer carries out upload operation when there is the file of same file cryptographic Hash to occur, and improves efficiency and avoids the waste that duplicate file uploads bring third party memory space and flow.)

一种避免浪费第三方云存储空间的方法

技术领域

本发明涉及计算机应用技术,尤其是一种避免浪费第三方云存储空间的方法。

背景技术

在各种web应用以及app应用的使用过程中会产生大量文件资源,比如发送多媒体消息时可能附带的图片、视频、文档等各类文件资源。随着时间的推移存储这些附件资源需要海量存储空间。很多产品会购买专业的第三方云存储空间,越多的使用第三方云存储空间当然也意味着成本越大。

以web应用发送包含文件的通知消息为例来说明浪费第三方云存储空间的操作。为了提升用户体验,减少用户点击发送消息时的响应时间,一般需要在用户选择好文件时,异步将文件上传至第三方云存储空间,这样用户点击发送消息时将不需要再进行耗时的文件上传操作。如果用户在点击发送消息前删除文件、修改文件、取消消息发送,原先已上传到第三方云存储空间的文件将会变成无用文件,从而浪费了第三方云存储空间。又或者用户在发送不同通知消息时选择了相同的文件,重复上传至第三方云存储空间也同样造成了浪费。

发明内容

本发明针对上述场景,提供了一种避免浪费第三方云存储空间的方法。本发明在保证用户体验的同时,能防止无用文件和重复文件上传至第三方云存储空间,从而降低云存储成本。

以web应用发送包含文件的通知消息为例进行说明:

设通知消息中的文件在服务端保存的属性有:文件哈希值、文件大小、文件类型、文件存储方式、文件网络地址、文件是否已发送。

步骤1、用户选择文件时,利用web浏览器计算文件的哈希值、大小和类型,并访问本地服务器,根据文件哈希值查询本地服务器是否已存在该文件,若存在则将文件存储方式设置为本地服务器存储,将文件网络地址设置为本地服务器存储路径对应的网络地址,此时无需再进行文件上传操作。若不存在,再查询第三方云存储空间是否已存在该文件,若存在则将文件存储方式设置为第三方云存储空间存储,将文件网络地址设置为第三方云存储空间对应的网络地址,此时无需再进行文件上传操作。若本地服务器和第三方云存储空间都不存在该文件,在本地服务器创建临时目录,在临时目录下创建以日期命名的子目录A,日期的格式为YYYYMMDD,再利用已成熟的分块上传技术将文件上传至本地服务器的目录A中。上传成功后将文件存储方式设置为本地服务器存储,将文件网络地址设置为本地服务器存储路径对应的网络地址,将文件是否已发送属性设置为“否”。

步骤2、在步骤1中获取文件存储方式、文件网络地址后,将文件的哈希值、大小和类型、存储方式、网络地址存储至数据库。用户点击发送消息,在消息发送成功后,将文件是否已发送属性设置为“是”,接收者将根据文件网络地址访问该文件。此时文件的存储方式根据步骤1中的不同情况,将有可能是本地服务器存储或者第三方云存储空间存储。若存储方式为第三方云存储空间存储时,将不需要对文件进行其他操作。若存储方式为本地服务器存储时,则开启上传文件至第三方云存储空间的系统任务,此任务第一步将根据文件的哈希值再次查询第三方云存储空间是否已存在相同的文件,若存在则终止任务,并更新文件存储方式为第三方云存储空间存储,将文件网络地址设置为第三方云存储空间对应的网络地址。若不存在则上传文件至第三方云存储空间,上传成功后,将更新文件存储方式为第三方云存储空间存储,并将文件网络地址设置为第三方云存储空间对应的网络地址。

步骤3、在步骤1中如果本地服务器和第三方云存储空间都不存在该文件,文件成功上传至本地服务器的临时目录后,若用户选择删除多媒体文件、修改多媒体文件,则直接删除或修改本地服务器存储的文件。若用户取消通知消息的发送,由于本地服务器存储的文件在步骤1中保存在以日期命名的子目录A,系统每天会开启删除临时目录中文件的任务,保证多余文件被删除。

删除临时目录文件任务流程如下:

获取当前系统当天的日期C和三天前的日期D,格式同为YYYYMMDD,遍历临时目录的子目录,若有名称为D的子目录,则遍历该子目录,获取该子目录下所有文件对应的网络地址。根据文件网络地址查询数据库,若无记录则直接删除文件,若有记录,根据文件是否已发送属性判断是否可删除。若件是否已发送属性为“否”,则直接删除文件,若为“是”,则说明有消息记录中的文件指向该地址,该文件不能被删除。有记录的情况可能是由于步骤2中上传文件至第三方云存储空间的系统任务上传失败,此时先将文件拷贝至名称为C的子目录同时更新数据库中记录的文件网络地址,然后开启上传文件至第三方云存储空间的系统任务。

本发明有益效果如下:

本发明采用先上传至本地服务器,待用户确认发送消息后再上传文件至第三方云存储空间的方法,杜绝了用户在消息发送前删除文件、修改文件带来的第三方存储空间和流量的浪费。

本发明当有相同文件哈希值的文件出现时,不再进行上传操作,提高了效率并避免了重复文件上传带来的第三方存储空间和流量的浪费。

具体实施方式

一种避免浪费第三方云存储空间的方法,在保证用户体验的同时,能防止无用文件和重复文件上传至第三方云存储空间,从而降低云存储成本。

以web应用发送包含文件的通知消息为例进行说明:

设通知消息中的文件在服务端保存的属性有:文件哈希值、文件大小、文件类型、文件存储方式、文件网络地址、文件是否已发送。

步骤1、用户选择文件时,利用web浏览器计算文件的哈希值、大小和类型,并访问本地服务器,根据文件哈希值查询本地服务器是否已存在该文件,若存在则将文件存储方式设置为本地服务器存储,将文件网络地址设置为本地服务器存储路径对应的网络地址,此时无需再进行文件上传操作。若不存在,再查询第三方云存储空间是否已存在该文件,若存在则将文件存储方式设置为第三方云存储空间存储,将文件网络地址设置为第三方云存储空间对应的网络地址,此时无需再进行文件上传操作。若本地服务器和第三方云存储空间都不存在该文件,在本地服务器创建临时目录,在临时目录下创建以日期命名的子目录A,日期的格式为YYYYMMDD,再利用已成熟的分块上传技术将文件上传至本地服务器的目录A中。上传成功后将文件存储方式设置为本地服务器存储,将文件网络地址设置为本地服务器存储路径对应的网络地址,将文件是否已发送属性设置为“否”。

步骤2、在步骤1中获取文件存储方式、文件网络地址后,将文件的哈希值、大小和类型、存储方式、网络地址存储至数据库。用户点击发送消息,在消息发送成功后,将文件是否已发送属性设置为“是”,接收者将根据文件网络地址访问该文件。此时文件的存储方式根据步骤1中的不同情况,将有可能是本地服务器存储或者第三方云存储空间存储。若存储方式为第三方云存储空间存储时,将不需要对文件进行其他操作。若存储方式为本地服务器存储时,则开启上传文件至第三方云存储空间的系统任务,此任务第一步将根据文件的哈希值再次查询第三方云存储空间是否已存在相同的文件,若存在则终止任务,并更新文件存储方式为第三方云存储空间存储,将文件网络地址设置为第三方云存储空间对应的网络地址。若不存在则上传文件至第三方云存储空间,上传成功后,将更新文件存储方式为第三方云存储空间存储,并将文件网络地址设置为第三方云存储空间对应的网络地址。

步骤3、在步骤1中如果本地服务器和第三方云存储空间都不存在该文件,文件成功上传至本地服务器的临时目录后,若用户选择删除多媒体文件、修改多媒体文件,则直接删除或修改本地服务器存储的文件。若用户取消通知消息的发送,由于本地服务器存储的文件在步骤1中保存在以日期命名的子目录A,系统每天会开启删除临时目录中文件的任务,保证多余文件被删除。

删除临时目录文件任务流程如下:

获取当前系统当天的日期C和三天前的日期D,格式同为YYYYMMDD,遍历临时目录的子目录,若有名称为D的子目录,则遍历该子目录,获取该子目录下所有文件对应的网络地址。根据文件网络地址查询数据库,若无记录则直接删除文件,若有记录,根据文件是否已发送属性判断是否可删除。若件是否已发送属性为“否”,则直接删除文件,若为“是”,则说明有消息记录中的文件指向该地址,该文件不能被删除。有记录的情况可能是由于步骤2中上传文件至第三方云存储空间的系统任务上传失败,此时先将文件拷贝至名称为C的子目录同时更新数据库中记录的文件网络地址,然后开启上传文件至第三方云存储空间的系统任务。

5页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据迁移方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类