CN109240837B - 一种通用云存储服务api的构建方法 - Google Patents
一种通用云存储服务api的构建方法 Download PDFInfo
- Publication number
- CN109240837B CN109240837B CN201811058267.0A CN201811058267A CN109240837B CN 109240837 B CN109240837 B CN 109240837B CN 201811058267 A CN201811058267 A CN 201811058267A CN 109240837 B CN109240837 B CN 109240837B
- Authority
- CN
- China
- Prior art keywords
- api
- cloud storage
- storage
- constructing
- storage service
- 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.)
- Active
Links
Images
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
本发明公开了一种通用云存储服务API的构建方法,含步骤:对公开的云存储服务进行分类、对公开的云存储服务的各项特征进行维度识别、构建处理各种公有云存储的账户数据表、设计通用的云存储操作API、为操作API构建统一的错误响应状态码、为操作API构建统一的数据交换格式、为操作API解决软件包依赖冲突的问题、为操作API构建安全访问机制。本发明的方法为目前公有云服务提供商的云存储服务提供了一套统一的、通用的操作API,有利于业务开发工作的简化,而且不再被公有云服务提供商所绑定。
Description
技术领域
本发明涉及计算机软件的分布式系统技术领域,特别涉及一种通用云存储服务API的构建方法。
背景技术
随着移动互联网的不断深入,越来越多的公司和企业逐渐开始面向互联网,并且把面向客户的服务和业务也迁移到线上。在开发这些线上业务时,随着客户数量的不断增多,业务平台的架构也在不断地变化演进。从早期的单体应用架构逐渐转变为微服务架构,集群和分布式也成为了标配的技术。
云存储是在云计算概念上延伸和发展出来的一个新概念,是一种新兴的网络存储技术,是指通过集群、网络通信或分布式文件系统等技术,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。云存储是一个以数据存储和管理为核心的云计算系统。
对于我们用户而言,可以选择阿里云存储、腾讯云存储、七牛云存储、亚马逊云存储、百度云存储、京东云存储、华为云存储等,这些云存储服务都很不错,但它们也给我们带来了不少麻烦。一方面是选择方面的困难,没有哪一个云存储服务能够100%可靠;另一方面是我们不愿意被云服务提供商所绑架,如果我们选择了某个云存储服务来开展业务运营,那么一段时间后,如果我们想迁移到另一个云服务提供商的云主机,迁移方案会非常复杂,而且迁移的成本也非常高昂,而且我们不得不重新开发云存储相关的业务代码。对于这种情况,业界并没有很好的解决方案,很多公司的做法是谨慎选择,且一旦选择了方案就不轻易迁移。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种通用云存储服务API的构建方法,该方法适用于采用了集群和/或分布式设计的系统,为目前公有云服务提供商的云存储服务提供了一套统一的、通用的操作API,使得新业务的开发不再需要关注各云存储服务的API要求,而改为使用这套API开发来完成,有利于业务开发工作的简化,而且不再被公有云服务提供商所绑定,业务迁移到新的云主机上非常简便。
为了达到上述的技术效果,本发明采取以下技术方案:
一种通用云存储服务API的构建方法,包括以下步骤:
A.对公开的云存储服务进行分类;即对目前公开提供服务的云服务提供商的云存储服务进行分类;
B.对公开的云存储服务的各项特征进行维度识别;即对目前公开提供服务的云服务提供商的云存储服务的各项特征进行维度识别,其中,对于每一个云存储服务,其每个维度都有对应的值;
C.对公开的云存储服务构建对应的账户数据表;即对目前公开提供服务的云服务提供商的云存储服务构建对应的账户数据表;
D.针对存储目标的类别,设计通用的云存储操作API;
E.构建操作API的统一的错误响应状态码;即根据HTTP协议的规定,为API构建统一的、通用的响应状态码;如用以下代码反应以下状态:代码401表示认证授权失败;代码403表示权限不足,拒绝访问;代码404表示资源不存在;代码503表示服务端不可用;
F.构建操作API的统一的数据交换格式;
G.解决操作API的软件包依赖冲突的问题;
实际中,几乎所有的云服务提供商提供的SDK软件包都是基于多个开源库而构建,不同的云服务提供商有可能使用了相同的开源库,其中有可能使用了相同的开源库版本,也有可能使用了有相同的开源库的不同版本,故面临冲突是必然的。
本技术方案采用在源码底层对所有依赖包进行版本扫描,建立依赖包管理列表,具体的依赖包管理列表中至少包括以下信息:依赖包的包全名、项目组名groupId、工件artifactId、版本号version、依赖包深度、依赖序号。
对于依赖包管理列表中存在相同的包全名、项目组名groupId、工件artifactId的依赖包的数量超过1个,且这些依赖包的版本号version不同时,本发明的技术方案中即认为这些依赖包存在软件包依赖冲突的问题,然后通过构建和使用不同的类加载器来加载存在着相互冲突的软件包,并让它们在不同的沙箱中隔离运行从而解决软件包依赖冲突的问题;
H.构建操作API的安全访问机制,以保障API的访问安全。
进一步地,所述步骤A中,对云存储服务进行分类时至少分为以下类别:对象存储、文件存储、图片存储、音频存储、视频存储。
进一步地,所述步骤B中的维度识别中的维度至少包括以下维度:免费和收费的特征、存储目标对象的大小限制、免费存储的大小限制、是否支持文件的版本控制、支持的操作系统、公有云存储的访问域名、请求或响应内容的MIME类型、请求或响应内容长度、通信状态、响应时间约束、Etag标识、上传请求ID。
进一步地,所述步骤C中的所述账户数据表中至少包括以下信息:用户名、密码、AppKey、AccessKey、SecretKey、令牌Token、访问空间的命名和分类,其中,令牌Token可以随访问而即时更新。
进一步地,所述步骤D中所述操作API中至少包括以下操作:对存储目标的添加、删除、修改、查询操作。
进一步地,所述查询操作包括多种维度的查询操作,所述多种维度的查询操作至少包括根据ID的查询、根据命名的查询。
进一步地,所述操作API中还包括以下操作:对存储目标的重命名,对存储目标的覆盖操作,对存储目标的上传操作,对存储目标的上传操作的断点续传操作,作为优选,所述操作API可根据需要继续添加。
进一步地,所述存储目标是单个存储目标和/或多个存储目标。
进一步地,遵循目前业界主流的做法,所述步骤F中所述数据交换格式为JSON数据交换格式,且所述数据采用BASE64编解码算法进行处理。
进一步地,所述步骤H中构建操作API的安全访问机制时可选择集成实施JSON WebToken国际标准或集成OAuth认证标准。
本发明与现有技术相比,具有以下的有益效果:
本发明的通用云存储服务API的构建方法,为目前公有云服务提供商的云存储服务提供了一套统一的、通用的操作API,使得新业务的开发不再需要关注各云存储服务的API要求,而改为使用这套API开发来完成,有利于业务开发工作的简化,而且不再被公有云服务提供商所绑定,业务迁移到新的云主机上非常简便。
附图说明
图1是本发明的通用云存储服务API的构建方法的流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
如图1所示,一种通用云存储服务API的构建方法的流程示意图,该方法可以应用于微服务架构中,可以应用于分布式计算平台、云计算平台等数据中心,该方法主要包括以下步骤:
步骤101,对公开的云存储服务进行分类。
即对目前公开提供服务的云服务提供商的云存储服务进行分类。所述的分类至少包括对象存储、文件存储、图片存储、音频存储、视频存储等类别。
步骤102,对公开的云存储服务的各项特征进行维度识别。
即对目前公开提供服务的云服务提供商的云存储服务的各项特征进行维度识别。所述的维度至少包括免费和收费的特征、存储目标对象的大小限制、免费存储的大小限制、是否支持文件的版本控制、支持哪些操作系统(Windows、MacOS、Linux、iOS、Android等)、公有云存储的访问域名、请求或响应内容的MIME类型、请求或响应内容长度、通信状态、响应时间约束、Etag标识、上传请求ID等维度。对于每一个云存储服务,其每个维度都有对应的值。
步骤103,构建处理各种公有云存储的账户数据表。
即对目前公开提供服务的云服务提供商的云存储服务构建对应的账户数据表。所述的账户数据表至少包括以下信息:用户名、密码、AppKey、AccessKey、SecretKey、令牌Token、访问空间的命名和分类等,其中令牌Token可以随访问而即时更新。
步骤104,设计通用的云存储操作API。
即针对存储目标的类别,设计一套通用的云存储操作API。所述的一套操作API至少包括对存储目标的添加、删除、修改、查询操作。其中,查询操作包括多种维度的查询操作,其中有根据ID的查询、根据命名的查询等。
作为优选,操作API可根据需要继续添加,如本实施例中操作API还包括以下操作:对存储目标的重命名,对存储目标的覆盖操作,对存储目标的上传操作,对存储目标的上传操作的断点续传操作等。
作为优选,操作API还包括对单个存储目标的操作,和对多个存储目标的批量操作。
步骤105,为操作API构建统一的错误响应状态码。
根据HTTP协议的规定,为API构建统一的、通用的响应状态码。本实施例中选取以下错误响应状态码来表示相应的状态:代码401表示认证授权失败;代码403表示权限不足,拒绝访问;代码404表示资源不存在;代码503表示服务端不可用等。
步骤106,为操作API构建统一的数据交换格式。
为操作API构建统一的数据交换格式,遵循目前业界主流的做法,实施例可以选择JSON数据交换格式,而且数据采用BASE64编/解码算法进行处理。
步骤107,为操作API解决软件包依赖冲突的问题。
为操作API解决开源库软件包依赖冲突的问题。几乎所有的云服务提供商提供的SDK软件包都是基于多个开源库而构建,不同的云服务提供商有可能使用了相同的开源库,其中有可能使用了相同的开源库版本,也有可能使用了有相同的开源库的不同版本,故面临冲突是必然的。
本实施例中采用在源码底层对所有依赖包进行版本扫描,建立依赖包管理列表,具体的依赖包管理列表中至少包括以下信息:依赖包的包全名、项目组名groupId、工件artifactId、版本号version、依赖包深度、依赖序号。
对于依赖包管理列表中存在相同的包全名、项目组名groupId、工件artifactId的依赖包的数量超过1个,且这些依赖包的版本号version不同时,本发明的技术方案中即认为这些依赖包存在软件包依赖冲突的问题,然后通过构建和使用不同的类加载器来加载存在着相互冲突的软件包,并让它们在不同的沙箱中隔离运行从而解决软件包依赖冲突的问题。
步骤108,为操作API构建安全访问机制。
为API构建安全访问机制。所述的构建安全访问的实施例可以选择集成实施JSONWeb Token国际标准,又或者是集成OAuth认证标准,以此保障API的访问安全。
作为优选,还可进一步采取包含对存储目标的防盗链处理等措施。
综上所述,本发明的一种通用云存储服务API的构建方法为目前公有云服务提供商的云存储服务提供了一套统一的、通用的操作API,使得新业务的开发不再需要关注各云存储服务的API要求,而改为使用这套API开发来完成,有利于业务开发工作的简化,而且不再被公有云服务提供商所绑定,业务迁移到新的云主机上非常简便。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (7)
1.一种通用云存储服务API的构建方法,其特征在于,包括以下步骤:
A.对公开的云存储服务进行分类;所述步骤A中,对云存储服务进行分类时至少分为以下类别:对象存储、文件存储、图片存储、音频存储、视频存储;
B.对公开的云存储服务的各项特征进行维度识别;所述步骤B中的维度识别中的维度至少包括以下维度:免费和收费的特征、存储目标对象的大小限制、免费存储的大小限制、是否支持文件的版本控制、支持的操作系统、公有云存储的访问域名、请求或响应内容的MIME类型、请求或响应内容长度、通信状态、响应时间约束、Etag标识、上传请求ID;
C.对公开的云存储服务构建对应的账户数据表;所述步骤C中的所述账户数据表中至少包括以下信息:用户名、密码、AppKey、AccessKey、SecretKey、令牌Token、访问空间的命名和分类;
D.针对存储目标的类别,设计通用的云存储操作API;
E.构建操作API的统一的错误响应状态码;
F.构建操作API的统一的数据交换格式;
G.解决操作API的软件包依赖冲突的问题;
H.构建操作API的安全访问机制。
2.根据权利要求1所述的一种通用云存储服务API的构建方法,其特征在于,所述步骤D中所述操作API中至少包括以下操作:对存储目标的添加、删除、修改、查询操作。
3.根据权利要求2所述的一种通用云存储服务API的构建方法,其特征在于,所述查询操作包括多种维度的查询操作,所述多种维度的查询操作至少包括根据ID的查询、根据命名的查询。
4.根据权利要求2所述的一种通用云存储服务API的构建方法,其特征在于,所述操作API中还包括以下操作:对存储目标的重命名,对存储目标的覆盖操作,对存储目标的上传操作,对存储目标的上传操作的断点续传操作。
5.根据权利要求1所述的一种通用云存储服务API的构建方法,其特征在于,所述步骤F中所述数据交换格式为JSON数据交换格式,且所述数据采用BASE64编解码算法进行处理。
6.根据权利要求1所述的一种通用云存储服务API的构建方法,其特征在于,所述步骤G中采用在源码底层对所有依赖包进行版本扫描,建立依赖包管理列表,通过构建和使用不同的类加载器来加载存在着相互冲突的软件包,并使存在着相互冲突的软件包在不同的沙箱中隔离运行从而解决软件包依赖冲突的问题。
7.根据权利要求1所述的一种通用云存储服务API的构建方法,其特征在于,所述步骤H中构建操作API的安全访问机制时选择集成实施JSON Web Token国际标准或集成OAuth认证标准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811058267.0A CN109240837B (zh) | 2018-09-11 | 2018-09-11 | 一种通用云存储服务api的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811058267.0A CN109240837B (zh) | 2018-09-11 | 2018-09-11 | 一种通用云存储服务api的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109240837A CN109240837A (zh) | 2019-01-18 |
CN109240837B true CN109240837B (zh) | 2020-09-29 |
Family
ID=65060835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811058267.0A Active CN109240837B (zh) | 2018-09-11 | 2018-09-11 | 一种通用云存储服务api的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240837B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825452A (zh) * | 2019-10-10 | 2020-02-21 | 国云科技股份有限公司 | 一种多云管理的云服务适配模块管理方法 |
CN111190641B (zh) * | 2020-01-23 | 2021-08-17 | 复旦大学 | 基于API分析的Java第三方库版本统一推荐方法 |
CN111901416B (zh) * | 2020-07-28 | 2023-06-27 | 中冶南方工程技术有限公司 | 一种解决大数据平台数据冲击的系统和方法 |
CN112732332B (zh) * | 2021-04-02 | 2021-07-23 | 北京易捷思达科技发展有限公司 | 适用于koji管理系统的软件包管理方法、装置及电子设备 |
CN116956363B (zh) * | 2023-09-20 | 2023-12-05 | 微网优联科技(成都)有限公司 | 一种基于云电脑技术的数据管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合系统及其聚合方法 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
CN104917815A (zh) * | 2015-04-21 | 2015-09-16 | 武大吉奥信息技术有限公司 | 一种用于云中gis服务计算的异构云隔离系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9223632B2 (en) * | 2011-05-20 | 2015-12-29 | Microsoft Technology Licensing, Llc | Cross-cloud management and troubleshooting |
US8983911B2 (en) * | 2011-06-20 | 2015-03-17 | Microsoft Technology Licensing, Llc | Storage media abstraction for uniform data storage |
-
2018
- 2018-09-11 CN CN201811058267.0A patent/CN109240837B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合系统及其聚合方法 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
CN104917815A (zh) * | 2015-04-21 | 2015-09-16 | 武大吉奥信息技术有限公司 | 一种用于云中gis服务计算的异构云隔离系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109240837A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240837B (zh) | 一种通用云存储服务api的构建方法 | |
CN113711536B (zh) | 从区块链网络中提取数据 | |
TWI502368B (zh) | 雲端計算系統及其電腦實施方法 | |
US11138030B2 (en) | Executing code referenced from a microservice registry | |
TWI624794B (zh) | 使在使用者的群組中能夠協同作業之電腦實施方法、計算裝置及電腦可讀媒體 | |
TWI512494B (zh) | 本端備份之基於雲端儲存 | |
EP3353701B1 (en) | Policy management for data migration | |
EP2689324B1 (en) | Strong rights management for computing application functionality | |
US10360410B2 (en) | Providing containers access to container daemon in multi-tenant environment | |
US20100287219A1 (en) | Method For a Cloud-Based Meta-File System to Virtually Unify Remote and Local Files Across a Range of Devices' Local File Systems | |
US20140310287A1 (en) | Method and system for storing data in commodity computing | |
KR20160067913A (ko) | 클라우드 데이터 손실 방지 통합 | |
WO2012000999A1 (en) | Configuring a computer system for a software package installation | |
US8660996B2 (en) | Monitoring files in cloud-based networks | |
WO2023093197A1 (zh) | 一种应用管理方法及相关系统 | |
US10466991B1 (en) | Computing instance software package installation | |
US10536559B2 (en) | Blocking an interface of a redirected USB composite device | |
US11729111B2 (en) | Pluggable data resource management controller | |
KR101943936B1 (ko) | 웹 표준 애플리케이션 개발을 위한 통합 외부 연동 시스템 및 방법 | |
CN113765871B (zh) | 堡垒机管理的方法和装置 | |
US11157454B2 (en) | Event-based synchronization in a file sharing environment | |
US10684840B1 (en) | Software package installation and monitoring | |
US11513782B1 (en) | Unrestricted to restricted computing framework | |
CN115987683A (zh) | 区块链网络中节点访问控制方法、装置、设备和介质 | |
CN113419878A (zh) | 一种数据操作方法和装置 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200113 Address after: 610000 Chengdu City, Sichuan Province, China (Sichuan) Free Trade Pilot Area, No. 199 Tianfu Fourth Street, Chengdu High-tech Zone, 33 floors Applicant after: Panovasic Co., Ltd. Address before: 621000 Mianyang province high tech Zone, East Hing Road, No. 35 cotton Applicant before: Sichuan Changhong Electrical Appliance Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |