数据传输方法及装置的制造方法

文档序号:10515176阅读:196来源:国知局
数据传输方法及装置的制造方法
【专利摘要】本发明是关于一种数据传输方法及装置,该方法包括:接收待传输的采集数据;利用预设网络传输协议将所述采集数据通过网络实时发送;判断所述采集数据是否被发送成功;当所述采集数据未发送成功时,将所述采集数据缓存到本地;利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送。该方法,可以实现数据碎片化传输,提高了数据传输的效率,数据传输的实时性高。
【专利说明】
数据传输方法及装置
技术领域
[0001 ]本发明涉及数据传输技术领域,尤其涉及一种数据传输方法及装置。
【背景技术】
[0002]随着全球化的发展,越来越多的企业在全球各地都开展有业务,为了方便对数据进行管理以及分析,通常都是在所在地设置有服务器,也即在一个企业可能在全球各地都设置有大量的服务器,但为了实现对数据的同一管理,需要将这些服务器汇总到数据统计中心,例如:中国的企业可能需要将数据汇总到设置在国内的数据统计中心。
[0003]但是在现有的跨国服务器传输数据时,在国外服务器采集到数据后,主要依靠nginx(—个高性能的HTTP和反向代理服务器)日志,nginx日志每十分钟旋转一次,产生出一个log(日志)文件,然后使用SCP(Sess1n Control Protocol;会话控制协议)技术将nginx log文件整体发送到国内服务器中。
[0004]而在实际应用中,国外到国内网络可能不稳定,对于很大的nginx log文件,在传输文件过程中随时可能中断,出现中断,可能要将整个nginx log文件重传,这一方面不仅浪费资源,而且数据上报最少要延迟10分钟,实时性差,无法满足大数据汇总的要求。

【发明内容】

[0005]为克服相关技术中存在的问题,本发明提供一种数据传输方法及装置。
[0006]根据本发明实施例的第一方面,提供一种数据传输方法,包括:
[0007]接收待传输的采集数据;
[0008]利用预设网络传输协议将所述采集数据通过网络实时发送;
[0009]判断所述采集数据是否被发送成功;
[0010]当所述采集数据未发送成功时,将所述采集数据缓存到本地;
[0011 ]利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送。
[0012]可选地,所述接收待传输的采集数据,包括:
[0013]判断预设数据接入接口是否被调用;
[0014]当所述预设数据接入接口被调用时,将所述预设数据接入接口接收到的数据作为所述采集数据。
[0015]可选地,所述利用预设网络传输协议将所述采集数据通过网络实时发送,包括:
[0016]解析所述采集数据的数据类型;
[0017]根据所述采集数据的数据类型,确定与所述采集数据相对应的加密策略;
[0018]利用所述加密策略对所述采集数据进行策略处理;
[0019]将策略处理后的采集数据通过所述传输网络进行实时发送。
[0020]可选地,所述解析所述采集数据的数据类型,包括:
[0021 ]遍历所述采集数据中的所有字段的字段内容;
[0022]判断所述字段内容是否存在预设字段;
[0023]当所述字段内容中包含预设字段时,将所述预设字段对应的数据类型确定为所述采集数据的数据类型。
[0024]可选地,所述判断所述采集数据是否被发送成功,包括:
[0025]当将所述采集数据通过网络实时发送后,检测是否在预设时间段内接收预设成功响应码;
[0026]当在预设时间段内接收到所述预设成功响应码时,确定所述采集数据被发送成功;
[0027]当在预设时间段内未接收到所述预设成功响应码时,确定所述采集数据未被发送成功。
[0028]可选地,所述利用预设重传方式对缓存到本地的所述采集数据进行自动重传,包括:
[0029]按照数据写入顺序依次读取缓存到本地的所述采集数据;
[0030]利用预设网络传输协议将所述读取到的采集数据通过网络发送。
[0031]根据本发明实施例的第二方面,提供一种数据传输装置,包括:
[0032]数据接收模块,用于接收待传输的采集数据;
[0033]实时发送模块,用于利用预设网络传输协议将所述采集数据通过网络实时发送;
[0034]发送判断模块,用于判断所述采集数据是否被发送成功;
[0035]数据缓存模块,用于当所述采集数据未发送成功时,将所述采集数据缓存到本地;
[0036]数据重传模块,用于利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送。
[0037]可选地,所述数据接收模块,包括:
[0038]调用判断子模块,用于判断预设数据接入接口是否被调用;
[0039]采集数据确定模块,用于当所述预设数据接入接口被调用时,将所述预设数据接入接口接收到的数据作为所述采集数据。
[0040]可选地,所述实时发送模块,包括:
[0041 ]数据类型解析子模块,用于解析所述采集数据的数据类型;
[0042]加密策略确定子模块,用于根据所述采集数据的数据类型,确定与所述采集数据相对应的加密策略;
[0043]策略处理子模块,用于利用所述加密策略对所述采集数据进行策略处理;
[0044]发送子模块,用于将策略处理后的采集数据通过所述传输网络进行实时发送。
[0045]可选地,所述数据类型解析子模块,包括:
[0046]字段获取子模块,用于遍历所述数据中的所有字段的字段内容;
[0047]字段判断子模块,用于判断所述字段内容是否存在预设字段;
[0048]数据类型确定子模块,用于当所述字段内容中包含预设字段时,将所述预设字段对应的数据类型确定为所述采集数据的数据类型。
[0049]可选地,所述发送判断模块,包括:
[0050]响应码检测模块,用于当将所述采集数据通过网络实时发送后,检测是否在预设时间段内接收预设成功响应码;
[0051]第一确定子模块,用于当在预设时间段内接收到所述预设成功响应码时,确定所述采集数据被发送成功;
[0052]第二确定子模块,用于当在预设时间段内未接收到所述预设成功响应码时,确定所述采集数据未被发送成功。
[0053]可选地,所述数据重传模块,包括:
[0054]数据读取子模块,用于按照数据写入顺序依次读取缓存到本地的所述采集数据;
[0055]数据发送子模块,用于利用预设网络传输协议将所述读取到的采集数据通过网络发送。
[0056]本发明的实施例提供的技术方案可以包括以下有益效果:
[0057]本发明实施例提供的该方法,接收待传输的采集数据;利用预设网络传输协议将所述采集数据通过网络实时发送;判断所述采集数据是否被发送成功;当所述采集数据未发送成功时,将所述采集数据缓存到本地;利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送
[0058]在该方法中,由于数据可以被实时发送,相应地,每当接收到采集数据,均可以直接被发送,因此,数据不用必须在本地存储为一个特定格式的文件后再发送。相比于现有技术中,采用nginx log日志每10分钟发送一次数据而言,本发明实施例提供的该方法,可以实现数据碎片化传输,提高了数据传输的效率,数据传输的实时性高。
[0059]另外,由于在网络繁忙或故障时,采集数据在接收到时,无法被实时发送出去,那么就可以将该采集数据缓存到本地,对于本地缓存的数据,在网络状态良好时,仍然按照写入的顺序采用碎片化传输,因此同样可以提高数据传输的效率,数据传输的实时性高。
[0060]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
【附图说明】
[0061]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0062]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0063]图1为根据一示例性实施例示出的一种数据传输方法的流程示意图;
[0064]图2为图1中步骤SlOl的流程示意图;
[0065]图3为图1中步骤S102的流程示意图;
[0066]图4为图1中步骤S103的流程示意图;
[0067]图5为图1中步骤S105的流程示意图;
[0068]图6为根据一示例性实施例示出的一种数据传输装置的结构示意图;
[0069]图7为图6中数据接收模块的结构示意图;
[0070]图8为图6中实时发送模块的结构示意图;
[0071 ]图9为图6中发送判断模块的结构示意图;
[0072]图10为图6中数据重传模块的结构示意图。
【具体实施方式】
[0073]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0074]图1是根据一示例性实施例示出的一种数据传输方法的流程图。该数据传输方法可以应用于服务器中,尤其是针对跨区域数据传输的多个服务器中的采集服务器,当采集服务器采集到数据后,需要跨区域将采集数据发送给其它服务器,如图1所示,该数据传输方法可以包括以下步骤。
[0075]步骤SlOl,接收待传输的采集数据。
[0076]采集数据可以是服务器当前接收到用户上传的数据,也可以是服务器从数据文件中读取得到的数据,无论哪种方式,接收到的采集数据均需要传输给其它服务器。
[0077]在一个实施例中,如图2所示,该步骤可以包括以下步骤:
[0078]步骤SlOll,判断预设数据接入接口是否被调用。
[0079]当所述预设数据接入接口被调用时,执行步骤S1012;否则,结束流程。
[0080]步骤S1012,将所述预设数据接入接口接收到的数据作为所述采集数据。
[0081]在本发明实施例中,可以在采集服务区中设置有数据接入层restfulapi,其中,REST是指REpresentat1n State Transfer,简称:表述性状态转移,API是指Applicat1nProgramming Interface,简称:应用程序编程接口。
[0082]相应地,在本实施例中,预设数据接入接口,可以为数据接入层restfulapi。在采集服务器中,一旦有调用该预设数据接入接口的某个服务,那么就可以通过该预设数据接入接口接收该服务上传的数据。
[0083]步骤S102,利用预设网络传输协议将所述采集数据通过网络实时发送。
[0084]在本发明实施例中,预设网络传输协议是指可以将数据实时发送的协议,例如:HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)等。由于数据可以被实时发送,相应地,每当接收到采集数据,均可以直接被发送,因此,数据不用必须在本地存储为一个特定格式的文件后再发送。相比于现有技术中,采用nginx log日志每10分钟发送一次数据而言,本发明实施例提供的该方法,可以实现数据碎片化传输,提高了数据传输的效率,数据传输的实时性高。
[0085]在本发明一实施例中,如图3所示,上述步骤S102可以包括以下步骤:
[0086]步骤S1021,解析所述采集数据的数据类型。
[0087]在本发明实施例中,可以根据数据的隐私优先级设置多个不同的数据类型,例如:可以包括:高隐私数据类型,低隐私数据类型和非隐私数据类型,其中,高隐私数据类型可以包括:用户ID,C00kie,登录密码等,低隐私数据类型可以包括:用户访问日志、操作记录等,非隐身数据类型可以包括:ur I (Uniform Resource Locator,统一资源定位符)地址等。
[0088]在本发明实施例中,步骤S1021可以采用以下方式实现。
[0089]SI,遍历所述采集数据中的所有字段的字段内容。
[0090]S2,判断所述字段内容是否存在预设字段。
[0091]预设字段是指上述:用户ID,C00kie,登录密码,访问日志,url等。
[0092]S3,当所述字段内容中包含预设字段时,将所述预设字段对应的数据类型确定为所述采集数据的数据类型。
[0093]参见前述关于数据类型的描述,可以得知,一旦确定字段内容中包含预设字段时,就可以准确确定该采集数据的数据类型。
[0094]步骤S1022,根据所述采集数据的数据类型,确定与所述采集数据相对应的加密策略。
[0095]在本发明实施例中,对于高隐私数据类型,其对应的加密策略可以采用MD5(Message Digest Algorithm 5,消息摘要算法5)加密方式,对于用户日志这类低隐私数据类型,其对应的加密策略可以采用对称加密算法和非对称加密算法,对于url这类非隐私数据类型,可以直接传输即可,而不进行压缩处理。
[0096]步骤S1023,利用所述加密策略对所述采集数据进行策略处理。
[0097]根据步骤S1022中确定的加密策略,在该步骤中,可以直接根据确定的加密策略进行分别处理。
[0098]步骤S1024,将策略处理后的采集数据通过所述传输网络进行实时发送。
[0099]步骤S103,判断所述采集数据是否被发送成功。
[0100]在本发明实施例中,当将所述采集数据通过网络实时发送后,如图4所示,该步骤可以采用包括以下步骤。
[0101]步骤S1031,检测是否在预设时间段内接收预设成功响应码。
[0102]对于HTTP协议而言,当数据传输成功后,会向数据的发送方返回200页面,一旦发送方接收到200页面,表示数据发送成功。
[0103]当在预设时间段内接收到所述预设成功响应码时,执行步骤S1032,否则,执行步骤S1033。
[0104]步骤S1032,确定所述采集数据被发送成功;
[0105]步骤S1033,确定所述采集数据未被发送成功。
[0106]当所述采集数据发送成功时,结束流程。当所述采集数据未发送成功时,执行步骤S104o
[0107]步骤S104,将所述采集数据缓存到本地。
[0108]步骤S105,利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送。
[0109]在重传时,可以预先设置好重传脚本,在重传脚本中可以设置重传启动条件,例如可以对网络实时监测,一旦网络状态良好,可以启动重传,并且在重传时可以包括以下步骤。
[0110]步骤S1051,按照数据写入顺序依次读取缓存到本地的所述采集数据。
[0111]步骤S1052,利用预设网络传输协议将所述读取到的采集数据通过网络发送。
[0112]由于在网络繁忙或故障时,采集数据在接收到时,无法被实时发送出去,那么就可以将该采集数据缓存到本地,对于本地缓存的数据,在网络状态良好时,仍然按照写入的顺序采用碎片化传输,因此同样可以提高数据传输的效率,数据传输的实时性高。
[0113]在图1所示实施例的基础上,本发明实施例还提供一种数据传输装置,如图6所示,该数据传输装置,可以包括:
[0114]数据接收模块11,用于接收待传输的采集数据。
[0115]采集数据可以是服务器当前接收到用户上传的数据,也可以是服务器从数据文件中读取得到的数据,无论哪种方式,接收到的采集数据均需要传输给其它服务器。
[0116]在本发明另一实施例中,如图7所示,图6中的数据接收模块11,可以包括:
[0117]调用判断子模块111,用于判断预设数据接入接口是否被调用。
[0118]采集数据确定模块112,用于当所述预设数据接入接口被调用时,将所述预设数据接入接口接收到的数据作为所述采集数据。
[0119]在本发明实施例中,可以在采集服务区中设置有数据接入层restfulapi,其中,REST是指REpresentat1n State Transfer,简称:表述性状态转移,API是指Applicat1nProgramming Interface,简称:应用程序编程接口。
[0120]相应地,在本实施例中,预设数据接入接口,可以为数据接入层restfulapi。在采集服务器中,一旦有调用该预设数据接入接口的某个服务,那么就可以通过该预设数据接入接口接收该服务上传的数据。
[0121]实时发送模块12,用于利用预设网络传输协议将所述采集数据通过网络实时发送。
[0122]在本发明实施例中,预设网络传输协议是指可以将数据实时发送的协议,例如:HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)等。由于数据可以被实时发送,相应地,每当接收到采集数据,均可以直接被发送,因此,数据不用必须在本地存储为一个特定格式的文件后再发送。相比于现有技术中,采用nginx log日志每10分钟发送一次数据而言,本发明实施例提供的该方法,可以实现数据碎片化传输,提高了数据传输的效率,数据传输的实时性高。
[0123]在本发明另一实施例中,如图8所示,图6中的实时发送模块12可以包括:
[0124]数据类型解析子模块121,用于解析所述采集数据的数据类型。
[0125]在本发明实施例中,可以根据数据的隐私优先级设置多个不同的数据类型,例如:可以包括:高隐私数据类型,低隐私数据类型和非隐私数据类型,其中,高隐私数据类型可以包括:用户ID,C00kie,登录密码等,低隐私数据类型可以包括:用户访问日志、操作记录等,非隐身数据类型可以包括:url (Uniform Resource Locator,统一资源定位符)地址等。
[0126]在本发明另一实施例中,图6中的数据类型解析子模块,包括:
[0127]字段获取子模块,用于遍历所述数据中的所有字段的字段内容。
[0128]字段判断子模块,用于判断所述字段内容是否存在预设字段。
[0129]预设字段是指上述:用户ID,C00kie,登录密码,访问日志,url等。
[0130]数据类型确定子模块,用于当所述字段内容中包含预设字段时,将所述预设字段对应的数据类型确定为所述采集数据的数据类型。
[0131]参见前述关于数据类型的描述,可以得知,一旦确定字段内容中包含预设字段时,就可以准确确定该采集数据的数据类型。
[0132]加密策略确定子模块122,用于根据所述采集数据的数据类型,确定与所述采集数据相对应的加密策略。
[0133]在本发明实施例中,对于高隐私数据类型,其对应的加密策略可以采用MD5(Message Digest Algorithm 5,消息摘要算法5)加密方式,对于用户日志这类低隐私数据类型,其对应的加密策略可以采用对称加密算法和非对称加密算法,对于url这类非隐私数据类型,可以直接传输即可,而不进行压缩处理。
[0134]策略处理子模块123,用于利用所述加密策略对所述采集数据进行策略处理。
[0135]发送子模块124,用于将策略处理后的采集数据通过所述传输网络进行实时发送。
[0136]发送判断模块13,用于判断所述采集数据是否被发送成功。
[0137]在本发明另一实施例中,如图9所示,图6中的发送判断模块13可以包括:
[0138]响应码检测模块131,用于当将所述采集数据通过网络实时发送后,检测是否在预设时间段内接收预设成功响应码。
[0139]对于HTTP协议而言,当数据传输成功后,会向数据的发送方返回200页面,一旦发送方接收到200页面,表示数据发送成功。
[0140]第一确定子模块132,用于当在预设时间段内接收到所述预设成功响应码时,确定所述采集数据被发送成功。
[0141]第二确定子模块133,用于当在预设时间段内未接收到所述预设成功响应码时,确定所述采集数据未被发送成功。
[0142]数据缓存模块14,用于当所述采集数据未发送成功时,将所述采集数据缓存到本地。
[0143]数据重传模块15,用于利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送。
[0144]在重传时,可以预先设置好重传脚本,在重传脚本中可以设置重传启动条件,例如可以对网络实时监测,一旦网络状态良好,可以启动重传,如图10所示,图6中的所述数据重传模块15,包括:
[0145]数据读取子模块151,用于按照数据写入顺序依次读取缓存到本地的所述采集数据。
[0146]数据发送子模块152,用于利用预设网络传输协议将所述读取到的采集数据通过网络发送。
[0147]由于在网络繁忙或故障时,采集数据在接收到时,无法被实时发送出去,那么就可以将该采集数据缓存到本地,对于本地缓存的数据,在网络状态良好时,仍然按照写入的顺序采用碎片化传输,因此同样可以提高数据传输的效率,数据传输的实时性高。
[0148]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0149]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
【主权项】
1.一种数据传输方法,其特征在于,包括: 接收待传输的采集数据; 利用预设网络传输协议将所述采集数据通过网络实时发送; 判断所述采集数据是否被发送成功; 当所述采集数据未发送成功时,将所述采集数据缓存到本地; 利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送。2.根据权利要求1所述的方法,其特征在于,所述接收待传输的采集数据,包括: 判断预设数据接入接口是否被调用; 当所述预设数据接入接口被调用时,将所述预设数据接入接口接收到的数据作为所述采集数据。3.根据权利要去I所述的方法,其特征在于,所述利用预设网络传输协议将所述采集数据通过网络实时发送,包括: 解析所述采集数据的数据类型; 根据所述采集数据的数据类型,确定与所述采集数据相对应的加密策略; 利用所述加密策略对所述采集数据进行策略处理; 将策略处理后的采集数据通过所述传输网络进行实时发送。4.根据权利要求3所述的方法,其特征在于,所述解析所述采集数据的数据类型,包括: 遍历所述采集数据中的所有字段的字段内容; 判断所述字段内容是否存在预设字段; 当所述字段内容中包含预设字段时,将所述预设字段对应的数据类型确定为所述采集数据的数据类型。5.根据权利要求1所述的方法,其特征在于,所述判断所述采集数据是否被发送成功,包括:当将所述采集数据通过网络实时发送后,检测是否在预设时间段内接收预设成功响应码; 当在预设时间段内接收到所述预设成功响应码时,确定所述采集数据被发送成功;当在预设时间段内未接收到所述预设成功响应码时,确定所述采集数据未被发送成功。6.根据权利要求1所述的方法,其特征在于,所述利用预设重传方式对缓存到本地的所述采集数据进行自动重传,包括: 按照数据写入顺序依次读取缓存到本地的所述采集数据; 利用预设网络传输协议将所述读取到的采集数据通过网络发送。7.一种数据传输装置,其特征在于,包括: 数据接收模块,用于接收待传输的采集数据; 实时发送模块,用于利用预设网络传输协议将所述采集数据通过网络实时发送; 发送判断模块,用于判断所述采集数据是否被发送成功; 数据缓存模块,用于当所述采集数据未发送成功时,将所述采集数据缓存到本地; 数据重传模块,用于利用预设重传方式对缓存到本地的所述采集数据进行自动重传,直至将所述采集数据成功发送。8.根据权利要求7所述的装置,其特征在于,所述数据接收模块,包括: 调用判断子模块,用于判断预设数据接入接口是否被调用; 采集数据确定模块,用于当所述预设数据接入接口被调用时,将所述预设数据接入接口接收到的数据作为所述采集数据。9.根据权利要求7所述的装置,其特征在于,所述实时发送模块,包括: 数据类型解析子模块,用于解析所述采集数据的数据类型; 加密策略确定子模块,用于根据所述采集数据的数据类型,确定与所述采集数据相对应的加密策略; 策略处理子模块,用于利用所述加密策略对所述采集数据进行策略处理; 发送子模块,用于将策略处理后的采集数据通过所述传输网络进行实时发送。10.根据权利要求9所述的装置,其特征在于,所述数据类型解析子模块,包括: 字段获取子模块,用于遍历所述数据中的所有字段的字段内容; 字段判断子模块,用于判断所述字段内容是否存在预设字段; 数据类型确定子模块,用于当所述字段内容中包含预设字段时,将所述预设字段对应的数据类型确定为所述采集数据的数据类型。11.根据权利要求7所述的装置,其特征在于,所述发送判断模块,包括: 响应码检测模块,用于当将所述采集数据通过网络实时发送后,检测是否在预设时间段内接收预设成功响应码; 第一确定子模块,用于当在预设时间段内接收到所述预设成功响应码时,确定所述采集数据被发送成功; 第二确定子模块,用于当在预设时间段内未接收到所述预设成功响应码时,确定所述采集数据未被发送成功。12.根据权利要求7所述的装置,其特征在于,所述数据重传模块,包括: 数据读取子模块,用于按照数据写入顺序依次读取缓存到本地的所述采集数据; 数据发送子模块,用于利用预设网络传输协议将所述读取到的采集数据通过网络发送。
【文档编号】H04L29/08GK105871520SQ201511029979
【公开日】2016年8月17日
【申请日】2015年12月31日
【发明人】徐龙飞
【申请人】乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1