CN111147235A - 对象访问方法、装置、电子设备及机器可读存储介质 - Google Patents
对象访问方法、装置、电子设备及机器可读存储介质 Download PDFInfo
- Publication number
- CN111147235A CN111147235A CN201911342566.1A CN201911342566A CN111147235A CN 111147235 A CN111147235 A CN 111147235A CN 201911342566 A CN201911342566 A CN 201911342566A CN 111147235 A CN111147235 A CN 111147235A
- Authority
- CN
- China
- Prior art keywords
- access
- objects
- storage system
- user account
- key
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种对象访问方法、装置、电子设备及机器可读存储介质。在本申请中,生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中;基于所述初始URL,构建与若干所述对象分别对应的对象访问URL;基于若干所述对象访问URL,进行批量访问,实现了共享前缀的多个对象批量访问时共享访问签名,提高了对象的访问效率,减少了存储系统的性能消耗。
Description
技术领域
本申请涉及存储技术领域,尤其涉及对象访问方法、装置、电子设备及机器可读存储介质。
背景技术
随着互联网应用的迅猛发展,PB级甚至EB级的海量数据存储变得尤为重要。对象存储系统作为一种新型的分布式存储系统,对象是对象存储系统中的基本实体,通过提供基于对象的访问接口,可存储任意类型的数据,比如:图片、视频、音频、文本等。对象存储系统有效解决了传统存储共享能力有限、扩展性差等问题。
发明内容
本申请提供一种对象访问方法,所述方法应用于存储系统;其中,所述存储系统为对象存储系统,所述方法包括:
生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中;
基于所述初始URL,构建与若干所述对象分别对应的对象访问URL;
基于若干所述对象访问URL,进行批量访问。
可选的,所述存储系统预设有第一用户账号和第二用户账号;其中,所述第一用户账号拥有访问若干所述对象的权限,所述第二用户账号不拥有访问若干所述对象的权限;
所述生成用于若干对象访问的初始URL,包括:
获取所述第一用户账号的用于访问若干所述对象的权限的访问密钥对;
获取用于所述第二用户账号的对若干所述对象分别进行访问的若干访问请求;
基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL。
可选的,所述访问密钥对为所述存储系统基于对称加密算法计算得到的密钥对;其中,所述访问密钥对包括SK密钥;
所述基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL,包括:
从若干所述访问请求中分别提取对应的若干请求参数,并确定出若干所述请求参数中的对象的对象名的相同前缀作为所述共享前缀;
将若干所述请求参数、所述共享前缀、所述访问有效期及所述SK密钥作为算法参数,输入至预设签名算法,生成与若干所述访问请求对应共享的访问签名;
基于所述访问签名、所述共享前缀,生成用于授权所述第二用户账号访问若干所述对象的初始URL。
可选的,所述访问密钥对还包括与所述SK密钥对应的AK密钥;所述存储系统预设有与上述对象对应的访问有效期;其中,所述访问有效期指示授权所述第二用户账号对若干所述对象的允许访问时段;
所述基于所述初始URL,构建与若干所述对象分别对应的对象访问URL,包括:
将所述AK密钥、所述访问有效期和所述初始URL;以及,与若干所述对象分别对应的对象名,按预设格式分别进行拼接,得到与若干所述对象分别对应的访问有效期内的对象访问URL。
可选的,所述基于若干所述对象访问URL,进行批量访问,包括:
基于若干所述对象访问URL,进行批量对象上传;或者,进行批量对象下载。
本申请还提供一种对象访问装置,所述装置应用于存储系统;其中,所述存储系统为对象存储系统,所述装置包括:
生成模块,生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中;
构建模块,基于所述初始URL,构建与若干所述对象分别对应的对象访问URL;
访问模块,基于若干所述对象访问URL,进行批量访问。
可选的,所述存储系统预设有第一用户账号和第二用户账号;其中,所述第一用户账号拥有访问若干所述对象的权限,所述第二用户账号不拥有访问若干所述对象的权限;
所述生成模块进一步:
获取所述第一用户账号的用于访问若干所述对象的权限的访问密钥对;
获取用于所述第二用户账号的对若干所述对象分别进行访问的若干访问请求;
基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL。
可选的,所述访问密钥对为所述存储系统基于对称加密算法计算得到的密钥对;其中,所述访问密钥对包括SK密钥;
所述生成模块进一步:
从若干所述访问请求中分别提取对应的若干请求参数,并确定出若干所述请求参数中的对象的对象名的相同前缀作为所述共享前缀;
将若干所述请求参数、所述共享前缀、所述访问有效期及所述SK密钥作为算法参数,输入至预设签名算法,生成与若干所述访问请求对应共享的访问签名;
基于所述访问签名、所述共享前缀,生成用于授权所述第二用户账号访问若干所述对象的初始URL。
可选的,所述访问密钥对还包括与所述SK密钥对应的AK密钥;所述存储系统预设有与上述对象对应的访问有效期;其中,所述访问有效期指示授权所述第二用户账号对若干所述对象的允许访问时段;
所述构建模块进一步:
将所述AK密钥、所述访问有效期和所述初始URL;以及,与若干所述对象分别对应的对象名,按预设格式分别进行拼接,得到与若干所述对象分别对应的访问有效期内的对象访问URL。
可选的,所述访问模块进一步:
基于若干所述对象访问URL,进行批量对象上传;或者,进行批量对象下载。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于生成用于若干对象访问的包括共享前缀的初始URL,并构建与若干对象分别对应的若干对象访问URL,基于若干对象访问URL,进行批量访问,实现了共享前缀的多个对象批量访问时共享访问签名,提高了对象的访问效率,减少了存储系统的性能消耗。
附图说明
图1是一示例性实施例提供的一种对象存储系统的架构示意图;
图2是一示例性实施例提供的一种对象访问方法的流程图;
图3是一示例性实施例提供的一种电子设备的硬件结构图;
图4是一示例性实施例提供的一种对象访问装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的对象访问的相关技术,进行简要说明。
请参见图1,图1是本申请一实施例提供的一种对象存储系统的架构示意图。
如图1所示,对象存储系统包括Client(对象存储客户端)、MDS(Metadata Server,元数据服务器)、OSD(Object-based Storage Device,对象存储设备);
其中,MDS和OSD组成对象存储服务集群为Client提供对象存储服务。在实现时,OSD存储有Client上传或下载的对象;MDS存储有与该对象对应的元数据,并控制Client对OSD的对象的访问。
当然,在实际应用中,为了防止MDS单点故障和提高对象存储系统的效率,还可以将MDS提供的元数据管理服务,分布部署在每个OSD中进行。
如图1所示,每个OSD设备可以创建用于存储对象的桶(Bucket);也即,桶是保存对象的容器;一个桶里可以保存若干对象。
其中,对象(Object)是对象存储系统中的数据存储的基本单位,每个对象都有具有唯一指示该对象的对象标识。通过对象的对象标识Client可以实现对象访问,例如:通过对象的对象标识Client可以进行对象上传或对象下载。
基于以上示出的对象存储系统的架构,在一些场景下,对象存储系统的OSD中的桶及其保存的对象的访问权限,可以由用户通过设置对象存储系统进行配置。
例如,在实际应用中,当对象存储系统的OSD中的桶及其保存的对象的访问权限被设置为公共读写权限开放时,用户可以通过任何账号(包含匿名账号)登录Client,并基于Client访问该桶及其保存对象不需要进行权限验证。
基于以上场景可见,将导致对象存储系统的存储安全性风险增大,因此,在以上场景的基础上,对象存储系统的OSD中的桶及其保存的对象的公共读写权限,通常不对匿名用户开放。而当对象存储系统的OSD中的桶及其保存的对象的公共读写权限不对匿名用户开放时,对象存储系统禁止用户通过Client对桶及其保存对象进行匿名访问。
在以上示出的组网架构;以及,在以上示出的对象存储系统禁止用户通过Client对桶及其保存对象进行匿名访问的场景下,而本申请旨在提出一种,基于共享前缀的多个对象通过共享访问签名的批量访问的技术方案。
在实现时,存储系统为对象存储系统;存储系统生成用于若干对象访问的初始URL;其中,初始URL包括访问若干对象的共享前缀;所述对象存储于对象存储系统中的同一个桶中。
进一步地,存储系统基于初始URL,构建与若干对象分别对应的若干对象访问URL;基于若干对象访问URL,进行批量访问。
在以上方案中,基于生成用于若干对象访问的包括共享前缀的初始URL,并构建与若干对象分别对应的若干对象访问URL,基于若干对象访问URL,进行批量访问,实现了共享前缀的多个对象批量访问时共享访问签名,提高了对象的访问效率,减少了存储系统的性能消耗。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图2,图2是本申请一实施例提供的一种对象访问方法的流程图,所述方法应用于存储系统;其中,所述存储系统为对象存储系统,上述方法执行以下步骤:
步骤202、生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中。
步骤204、基于所述初始URL,构建与若干所述对象分别对应的对象访问URL。
步骤206、基于若干所述对象访问URL,进行批量访问。
在本说明书中,上述存储系统为基于任何分布式架构的对象存储系统。
例如,在实际应用中,上述存储系统可以包括基于Ceph(另一种分布式对象存储架构)架构的对象存储系统;上述存储系统也可以包括基于MOSS(MacroSAN Object StorageSystem,宏杉对象存储系统;另一种分布式对象存储架构)架构的对象存储系统。
在本说明书中,上述对象,是指已保存于或者计划保存于上述存储系统中的桶(Bucket)中的任何数据格式的对象。
例如,在实际应用中,上述对象可以包括已保存于或者计划保存于上述存储系统中的桶(Bucket)中的图片、网页、视频、压缩包、程序、表项等数据格式的对象。
在本说明书中,若干上述对象,是指属于上述对象存储系统中的同一个桶中的若干上述对象。
例如,在实际应用中,上述对象存储系统中OSD(对象存储设备)预先创建有桶名为BucketA的桶,若干上述对象可以包括已保存于BucketA的桶中的对象Object1、对象Object2、对象Object3。
又例如,在实际应用中,上述对象存储系统中OSD(对象存储设备)预先创建有桶名为BucketA的桶,若干上述对象可以包括计划保存于BucketA的桶中的对象Object4、对象Object5、对象Object6。
在本说明书中,上述初始URL,是指用于若干上述对象访问的共享URL(UniformResource Locator,统一资源定位符)。
接着以上示例继续举例,上述初始URL可以为用于访问已保存于BucketA的桶中的对象Object1、对象Object2、对象Object3的共享URL;上述初始URL也可以为用于访问计划保存于BucketA的桶中的对象Object4、对象Object5、对象Object6的共享URL。
在本说明书中,上述共享前缀,是指上述初始URL包括的、若干上述对象的对象名的相同前缀。
接着以上示例继续举例,对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6,分别对应的对象名,请参见如下表1所示:
编号 | 对象 | 对象的对象名 |
1 | 对象Object1 | EG1 |
2 | 对象Object2 | EG2 |
3 | 对象Object3 | EG/3 |
4 | 对象Object4 | EG/4 |
5 | 对象Object5 | EG5 |
6 | 对象Object6 | EG6 |
表1
如表1所示,对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6的对象名的相同前缀为“EG”,也即,该6个对象的共享前缀为“EG”。
在本说明书中,上述存储系统生成上述初始URL;其中,上述初始URL包括上述共享前缀。
接着以上示例继续举例,上述存储系统生成用于访问对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6的初始URL;该初始URL包括内容为“EG”的共享前缀。
在示出的一种实施方式中,上述存储系统预设有第一用户账号和第二用户账号;其中,上述第一用户账号拥有访问若干上述对象的权限,上述第二用户账号不拥有访问若干上述对象的权限。
接着以上示例继续举例,上述存储系统预设有用户账号A和用户账号B(比如:匿名账号);其中,用户账号A拥有访问对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6的权限;用户账号B不拥有访问对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6的权限。
需要说明的是,除了为匿名账号外,上述第二用户账号还可以包括不拥有访问若干上述对象的权限的一个或多个用户账号。
在本说明书中,进一步地,在上述存储系统生成上述初始URL的过程中,上述存储系统获取上述第一用户账号的用于访问若干上述对象的权限的访问密钥对。
接着以上示例继续举例,上述存储系统获取用户账号A的用于访问对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6的权限的访问密钥对。
在本说明书中,进一步地,上述存储系统获取用于上述第二用户账号的对若干上述对象分别进行访问的若干访问请求。
接着以上示例继续举例,上述存储系统获取对象客户端(如图1所示的Client)的计划通过用户账号B,对6个对象(对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6,后续简称为6个对象)分别进行访问的6个访问请求。
在本说明书中,上述访问密钥对为上述存储系统基于对称加密算法随机计算得到的密钥对;其中,上述访问密钥对包括SK密钥。基于上述访问密钥对,上述存储系统可以对上述对象进行安全访问。需要说明的是,获取上述访问密钥对的对称加密算法以及该算法输出的SK密钥的长度和数据格式,在本说明书中不作具体限定。
在本说明书中,上述存储系统预设有与上述对象对应的访问有效期;其中,上述访问有效期指示授权上述第二用户账号对若干上述对象的允许访问时段。
接着以上示例继续举例,上述存储系统预设有与6个对象分别对应的访问有效期;其中,上述访问有效期指示授权用户账号B对6个对象的允许访问时段。比如:6个对象的对应的访问有效期,请参见如下表2所示:
编号 | 对象 | 对象的对象名 | 访问有效期 |
1 | 对象Object1 | EG1 | VT |
2 | 对象Object2 | EG2 | VT |
3 | 对象Object3 | EG/3 | VT |
4 | 对象Object4 | EG/4 | VT |
5 | 对象Object5 | EG5 | VT |
6 | 对象Object6 | EG6 | VT |
表2
对象Object1、对象Object2、对象Object3、对象Object4、对象Object5及对象Object6的分别对应的访问有效期如表2所示;其中,访问有效期VT的有效期的表现方式可以包括设置有效截止时间(比如:截至到指定时刻)或有效时间段(比如:从指定时刻开始的预设时间范围内)等方式。
在本说明书中,进一步地,基于若干上述访问请求和上述访问密钥对,上述存储系统生成用于授权上述第二用户账号对若干上述对象访问的初始URL。
接着以上示例继续举例,基于与6个对象分别对应的6个访问请求和上述访问密钥对,上述存储系统生成用于授权用户账号B对应6个对象访问的共享的1个初始URL。
在示出的一种实施方式中,在基于若干上述访问请求和上述访问密钥对,生成用于授权上述第二用户账号对若干上述对象访问的初始URL的过程中,上述存储系统从若干上述访问请求中分别提取对应的若干请求参数,并确定出若干上述请求参数中的对象的对象名的相同前缀作为上述共享前缀。
接着以上示例继续举例,上述存储系统从与6个对象分别对应的6个访问请求中分别提取对应的若干请求参数,并确定出若干请求参数中的6个对象的对象名的相同前缀为“EG”作为上述共享前缀。
当然,在实际应用中,在从若干上述访问请求中分别提取对应的若干上述请求参数的过程中,上述存储系统除了提取上述对象的对象名外,还提取其它请求参数,比如:若干上述请求参数还可以包括承载上述若干请求参数的HTTP或HTTPS的方法名(比如:GET或PUT)、上述对象的数据内容经摘要算法计算得到的数据摘要值、上述对象位于的桶名、上述对象存储系统的域名等。
在本说明书中,进一步地,上述存储系统将若干上述请求参数、上述共享前缀、上述访问有效期及上述SK密钥作为算法参数,输入至预设签名算法,生成与若干上述访问请求分别对应共享的访问签名。
接着以上示例继续举例,上述存储系统将若干上述请求参数、上述共享前缀(比如“EG”)、上述访问有效期(比如:VT)、上述SK密钥作为算法参数,输入至预设签名算法,以由上述预设签名算法生成与6个访问请求分别对应共享的1个访问签名。
需要说明的是,在实际应用中,上述预设签名算法可以是单个算法,也可以是多个算法的组合,比如:上述预设签名算法可以包括SHA256算法、HMAC-SHA1(Hash-basedMessage Authentication SHA1,基于哈希运算消息认证码的SHA1)算法、Base64算法、HMAC-SHA256(Hash-based Message Authentication SHA256,基于哈希运算消息认证码的SHA256)算法等算法中的任何一个或多个组合,或者,多个算法多次组合,具体算法组合方式,在本说明书中不作具体限定。
在本说明书中,进一步地,上述存储系统基于上述访问签名、上述共享前缀,生成用于授权上述第二用户账号访问若干上述对象的初始URL。
接着以上示例继续举例,上述存储系统基于与6个访问请求对应共享的1个访问签名SSIG、共享前缀:“EG”,生成用于授权用户账号B访问6个对象的1个初始URL;其中,该初始URL包括共享前缀:“EG”、访问签名SSIG。
在本说明书中,在生成初始URL后,上述存储系统基于上述初始URL,构建与若干上述对象分别对应的对象访问URL。
接着以上示例继续举例,在生成用于授权用户账号B分别访问6个对象的1个初始URL后,上述存储系统基于该初始URL,构建与6个对象分别对应的对象访问URL。
在示出的一种实施方式中,上述访问密钥对除了包括上述SK密钥外,还包括与上述SK密钥对应的AK密钥;在基于上述初始URL,构建与若干上述对象分别对应的对象访问URL的过程中,上述存储系统将上述AK密钥、上述访问有效期和上述初始URL;以及,与若干上述对象分别对应的对象名,按预设格式分别进行拼接,得到与若干上述对象分别对应的访问有效期内的对象访问URL。
接着以上示例继续举例,上述存储系统可以将该初始URL返回给对象客户端(Client);以由,对象客户端(Client)再基于与6个对象分别对应的对象名(如表2所示)和该初始URL,按预设格式分别进行拼接,得到与6个对象分别对应的访问有效期内的对象访问URL;
其中,该预设格式可以包括如下格式1和格式2:
格式1:
http(s):<Host>/<桶名>/<对象名>?AK=<AK>&Expires=<访问有效期>&Prefix=<共享前缀>&Signature=<签名>
格式2:
http(s):<Host>/<桶名>/<对象名>?CanonicalQueryString=<包含AK的规范化查询参数>&Expires=<访问有效期>&Prefix=<共享前缀>&Signature=<签名>
如格式1和格式2所示,“Host”表征上述存储系统的域名,“桶名”表征若干上述对象位于的桶名,“对象名”表征上述对象的对象名;“Expires=<访问有效期>”表征上述对象对应的访问有效期,“Prefix=<共享前缀>”表征若干上述对象对应的上述共享前缀,“AK=<AK>”表征上述AK密钥;“CanonicalQueryString=<包含AK的规范化查询参数>”表征包含AK的规范化查询参数;当然除了AK密钥、访问有效期(Expires)、对象名外还有其他参数,该其他参数及CanonicalQueryString的具体格式的说明,请参见AWS(亚马逊)的S3(SimpleStorage Service,简单存储服务)相关的技术说明,这里不再赘述。
以对象Object1按照以上格式1和格式2构建对应的访问有效期内的对象访问URL为例继续说明,对象Object1对应的对象访问URL可以为:
基于格式1的对象Object1的对象访问URL:
http(s):<mosstest.com>/BucketA/EG1?AK=<AK>&Expires=<VT>&Prefix=“EG”&Signature=<SSIG>
;或者,
基于格式2的对象Object1的对象访问URL:
http(s):<mosstest.com>/BucketA/EG1?CanonicalQueryString=<包含AK的规范化查询参数>&Expires=<VT>&Prefix=“EG”&Signature=<SSIG>
类似地,针对对象Object2、对象Object3、对象Object4、对象Object5及对象Object6,可以分别构建对应的对象访问URL,具体不再赘述。
在本说明书中,在构建与若干上述对象分别对应的对象访问URL后,上述存储系统基于构建的若干上述述对象访问URL,进行批量访问。
接着以上示例继续举例,上述存储系统基于构建的与6个对象分别对应的对象访问URL,进行批量访问。
在示出的一种实施方式中,基于构建的若干上述对象访问URL,上述存储系统进行批量对象上传;或者,进行批量对象下载。
接着以上示例继续举例,在实际应用中,上述存储系统也可以通过API(Application Programming Interface,应用程序接口)方式或者消息队列方式或者命令行方式等将上述初始URL提供对象存储客户端,对象存储客户端基于上述初始URL构建的若干上述对象访问URL,在匿名登录情况下,通过调用若干上述对象访问URL,在与若干上述对象访问URL分别对应的访问有效期内,进行批量对象上传或者批量对象下载。
需要说明的是,当对象存储客户端基于若干上述对象访问URL并发发起对应的批量对象上传或者批量对象下载时,上述存储系统通过共享前缀,构建与上述对象对应的对象访问URL,相比原有技术方案的针对每个上述对象的对象名重复进行访问签名计算,减少了存储系统的性能消耗,提高了对象的访问效率。
例如,在实际应用中,在原有技术方案中,每上传一个对象需要生成一个对应的对象访问URL,若待上传的文件夹下有1000个文件需要上传,则需要生成1000个文件对应的对象上传的对象访问URL。类似的,每下载一个对象也需要对应生成一个对象访问URL,若某个桶中的文件夹下有1000个对象需要下载,则需要生成1000个对象对应的对象下载的对象访问URL。基于以上描述可见,在原有技术方案中,存储系统需要执行2000次对象的签名运算,针对含有相同前缀对象的上传和下载,需要频繁计算对象的访问签名,导致存储系统的性能消耗较大,对象访问效率低下。而基于本申请提供的基于共享前缀及共享访问签名,构建与上述对象对应的对象访问URL的技术方案,存储系统最多仅需计算2次(比如:1000个对象批量上传计算一次访问签名、1000个对象批量下载再计算一次访问签名)基于对象的共享前缀的签名运算,减少了存储系统的性能消耗,提高了对象的访问效率。
当然,在实际应用中,当若干上述对象若不存在上述共享前缀,上述存储系统还可以基于现有的方案进行对象访问,由此实现了对象访问的灵活性,减少了存储系统的额外开发。
在以上技术方案中,基于生成用于若干对象访问的包括共享前缀的初始URL,并构建与若干对象分别对应的若干对象访问URL,基于若干对象访问URL,进行批量访问,实现了共享前缀的多个对象批量访问时共享访问签名,提高了对象的访问效率,减少了存储系统的性能消耗。
与上述方法实施例相对应,本申请还提供了对象访问装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种对象访问装置的实施例。本说明书的对象访问装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书的对象访问装置所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一实施例示出的一种对象访问装置的框图。
请参考图4,所述对象访问装置40可以应用在前述图3所示的电子设备中,所述装置应用于存储设备;其中,所述存储系统为对象存储系统,所述装置包括:
生成模块401,生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中;
构建模块402,基于所述初始URL,构建与若干所述对象分别对应的对象访问URL;
访问模块403,基于若干所述对象访问URL,进行批量访问。
在本实施例中,所述存储系统预设有第一用户账号和第二用户账号;其中,所述第一用户账号拥有访问若干所述对象的权限,所述第二用户账号不拥有访问若干所述对象的权限;
所述生成模块401进一步:
获取所述第一用户账号的用于访问若干所述对象的权限的访问密钥对;
获取用于所述第二用户账号的对若干所述对象分别进行访问的若干访问请求;
基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL。
在本实施例中,所述访问密钥对为所述存储系统基于对称加密算法计算得到的密钥对;其中,所述访问密钥对包括SK密钥;
所述存储系统预设有与上述对象对应的访问有效期;其中,所述访问有效期指示授权所述第二用户账号对若干所述对象的允许访问时段;
所述生成模块401进一步:
从若干所述访问请求中分别提取对应的若干请求参数,并确定出若干所述请求参数中的对象的对象名的相同前缀作为所述共享前缀;
将若干所述请求参数、所述共享前缀、所述访问有效期及所述SK密钥作为算法参数,输入至预设签名算法,生成与若干所述访问请求对应共享的访问签名;
基于所述访问签名、所述共享前缀,生成用于授权所述第二用户账号访问若干所述对象的初始URL。
在本实施例中,所述访问密钥对还包括与所述SK密钥对应的AK密钥;所述构建模块402进一步:
将所述AK密钥、所述访问有效期和所述初始URL;以及,与若干所述对象分别对应的对象名,按预设格式分别进行拼接,得到与若干所述对象分别对应的访问有效期内的对象访问URL。
在本实施例中,所述访问模块403进一步:
基于若干所述对象访问URL,进行批量对象上传;或者,进行批量对象下载。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。所述电子设备可以应用于存储系统;其中,所述存储系统为对象存储系统;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与对象访问逻辑对应的机器可执行指令,所述处理器被促使:
生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中;
基于所述初始URL,构建与若干所述对象分别对应的对象访问URL;
基于若干所述对象访问URL,进行批量访问。
在本实施例中,所述存储系统预设有第一用户账号和第二用户账号;其中,所述第一用户账号拥有访问若干所述对象的权限,所述第二用户账号不拥有访问若干所述对象的权限;通过读取并执行所述存储器存储的与对象访问逻辑对应的机器可执行指令,所述处理器被促使:
获取所述第一用户账号的用于访问若干所述对象的权限的访问密钥对;
获取用于所述第二用户账号的对若干所述对象分别进行访问的若干访问请求;
基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL。
在本实施例中,所述访问密钥对为所述存储系统基于对称加密算法计算得到的密钥对;其中,所述访问密钥对包括SK密钥;
所述存储系统预设有与上述对象对应的访问有效期;其中,所述访问有效期指示授权所述第二用户账号对若干所述对象的允许访问时段;
通过读取并执行所述存储器存储的与对象访问逻辑对应的机器可执行指令,所述处理器被促使:
从若干所述访问请求中分别提取对应的若干请求参数,并确定出若干所述请求参数中的对象的对象名的相同前缀作为所述共享前缀;
将若干所述请求参数、所述共享前缀、所述访问有效期及所述SK密钥作为算法参数,输入至预设签名算法,生成与若干所述访问请求对应共享的访问签名;
基于所述访问签名、所述共享前缀,生成用于授权所述第二用户账号访问若干所述对象的初始URL。
在本实施例中,所述访问密钥对还包括与所述SK密钥对应的AK密钥;通过读取并执行所述存储器存储的与对象访问逻辑对应的机器可执行指令,所述处理器被促使:
将所述AK密钥、所述访问有效期和所述初始URL;以及,与若干所述对象分别对应的对象名,按预设格式分别进行拼接,得到与若干所述对象分别对应的访问有效期内的对象访问URL。
在本实施例中,通过读取并执行所述存储器存储的与对象访问逻辑对应的机器可执行指令,所述处理器被促使:
基于若干所述对象访问URL,进行批量对象上传;或者,进行批量对象下载。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (12)
1.一种对象访问方法,其特征在于,所述方法应用于存储系统;其中,所述存储系统为对象存储系统,所述方法包括:
生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中;
基于所述初始URL,构建与若干所述对象分别对应的对象访问URL;
基于若干所述对象访问URL,进行批量访问。
2.根据权利要求1所述的方法,其特征在于,所述存储系统预设有第一用户账号和第二用户账号;其中,所述第一用户账号拥有访问若干所述对象的权限,所述第二用户账号不拥有访问若干所述对象的权限;
所述生成用于若干对象访问的初始URL,包括:
获取所述第一用户账号的用于访问若干所述对象的权限的访问密钥对;
获取用于所述第二用户账号的对若干所述对象分别进行访问的若干访问请求;
基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL。
3.根据权利要求2所述的方法,其特征在于,所述访问密钥对为所述存储系统基于对称加密算法计算得到的密钥对;其中,所述访问密钥对包括SK密钥;
所述存储系统预设有与若干所述对象对应的访问有效期;其中,所述访问有效期指示授权所述第二用户账号对若干所述对象的允许访问时段;
所述基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL,包括:
从若干所述访问请求中分别提取对应的若干请求参数,并确定出若干所述请求参数中的对象的对象名的相同前缀作为所述共享前缀;
将若干所述请求参数、所述共享前缀、所述访问有效期及所述SK密钥作为算法参数,输入至预设签名算法,生成与若干所述访问请求对应共享的访问签名;
基于所述访问签名、所述共享前缀,生成用于授权所述第二用户账号访问若干所述对象的初始URL。
4.根据权利要求3所述的方法,其特征在于,所述访问密钥对还包括与所述SK密钥对应的AK密钥;
所述基于所述初始URL,构建与若干所述对象分别对应的对象访问URL,包括:
将所述AK密钥、所述访问有效期和所述初始URL;以及,与若干所述对象分别对应的对象名,按预设格式分别进行拼接,得到与若干所述对象分别对应的访问有效期内的对象访问URL。
5.根据权利要求1所述的方法,其特征在于,所述基于若干所述对象访问URL,进行批量访问,包括:
基于若干所述对象访问URL,进行批量对象上传;或者,进行批量对象下载。
6.一种对象访问装置,其特征在于,所述装置应用于存储系统;其中,所述存储系统为对象存储系统,所述装置包括:
生成模块,生成用于若干对象访问的初始URL;其中,所述初始URL包括访问若干所述对象的共享前缀;若干所述对象存储于所述对象存储系统中的同一个桶中;
构建模块,基于所述初始URL,构建与若干所述对象分别对应的对象访问URL;
访问模块,基于若干所述对象访问URL,进行批量访问。
7.根据权利要求6所述的装置,其特征在于,所述存储系统预设有第一用户账号和第二用户账号;其中,所述第一用户账号拥有访问若干所述对象的权限,所述第二用户账号不拥有访问若干所述对象的权限;
所述生成模块进一步:
获取所述第一用户账号的用于访问若干所述对象的权限的访问密钥对;
获取用于所述第二用户账号的对若干所述对象分别进行访问的若干访问请求;
基于若干所述访问请求和所述访问密钥对,生成用于授权所述第二用户账号对若干所述对象访问的初始URL。
8.根据权利要求7所述的装置,其特征在于,所述访问密钥对为所述存储系统基于对称加密算法计算得到的密钥对;其中,所述访问密钥对包括SK密钥;所述存储系统预设有与若干所述对象对应的访问有效期;其中,所述访问有效期指示授权所述第二用户账号对若干所述对象的允许访问时段;
所述生成模块进一步:
从若干所述访问请求中分别提取对应的若干请求参数,并确定出若干所述请求参数中的对象的对象名的相同前缀作为所述共享前缀;
将若干所述请求参数、所述共享前缀、所述访问有效期及所述SK密钥作为算法参数,输入至预设签名算法,生成与若干所述访问请求对应共享的访问签名;
基于所述访问签名、所述共享前缀,生成用于授权所述第二用户账号访问若干所述对象的初始URL。
9.根据权利要求8所述的装置,其特征在于,所述访问密钥对还包括与所述SK密钥对应的AK密钥;所述存储系统预设有与上述对象对应的访问有效期;其中,所述访问有效期指示授权所述第二用户账号对若干所述对象的允许访问时段;
所述构建模块进一步:
将所述AK密钥、所述访问有效期和所述初始URL;以及,与若干所述对象分别对应的对象名,按预设格式分别进行拼接,得到与若干所述对象分别对应的访问有效期内的对象访问URL。
10.根据权利要求6所述的装置,其特征在于,所述访问模块进一步:
基于若干所述对象访问URL,进行批量对象上传;或者,进行批量对象下载。
11.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至5任一项所述的方法。
12.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911342566.1A CN111147235B (zh) | 2019-12-23 | 2019-12-23 | 对象访问方法、装置、电子设备及机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911342566.1A CN111147235B (zh) | 2019-12-23 | 2019-12-23 | 对象访问方法、装置、电子设备及机器可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111147235A true CN111147235A (zh) | 2020-05-12 |
CN111147235B CN111147235B (zh) | 2022-11-11 |
Family
ID=70519603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911342566.1A Active CN111147235B (zh) | 2019-12-23 | 2019-12-23 | 对象访问方法、装置、电子设备及机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147235B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126920A (zh) * | 2021-04-02 | 2021-07-16 | 深圳市杉岩数据技术有限公司 | 对象存储批量读取及写入方法、客户端、存储网关及介质 |
WO2022127762A1 (zh) * | 2020-12-14 | 2022-06-23 | 华为云计算技术有限公司 | 云平台及其提供的对象存储服务的桶管理方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101573910A (zh) * | 2006-10-31 | 2009-11-04 | 新加坡科技研究局 | 生成和分配对数字对象的访问许可的设备和方法 |
US20150271179A1 (en) * | 2014-03-24 | 2015-09-24 | Futurewei Technologies, Inc. | System and method for partial url signing with applications to dynamic adaptive streaming |
CN109375872A (zh) * | 2018-09-27 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 数据访问请求的处理方法、装置和设备及存储介质 |
CN109710743A (zh) * | 2018-12-28 | 2019-05-03 | 郑州云海信息技术有限公司 | 一种存储池的访问方法、装置及电子设备 |
CN109828828A (zh) * | 2019-01-23 | 2019-05-31 | 杭州宏杉科技股份有限公司 | 对象上传方法、装置、电子设备及机器可读存储介质 |
CN110019101A (zh) * | 2018-07-23 | 2019-07-16 | 浪潮软件集团有限公司 | 一种区块链对象的外部存储方法及系统 |
CN110198334A (zh) * | 2018-04-19 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 基于对象存储服务的访问方法、装置和存储介质 |
CN110197075A (zh) * | 2018-04-11 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 资源访问方法、装置、计算设备以及存储介质 |
CN110321498A (zh) * | 2018-03-30 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种二维码生成和解析方法及设备 |
-
2019
- 2019-12-23 CN CN201911342566.1A patent/CN111147235B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101573910A (zh) * | 2006-10-31 | 2009-11-04 | 新加坡科技研究局 | 生成和分配对数字对象的访问许可的设备和方法 |
US20150271179A1 (en) * | 2014-03-24 | 2015-09-24 | Futurewei Technologies, Inc. | System and method for partial url signing with applications to dynamic adaptive streaming |
CN110321498A (zh) * | 2018-03-30 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种二维码生成和解析方法及设备 |
CN110197075A (zh) * | 2018-04-11 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 资源访问方法、装置、计算设备以及存储介质 |
CN110198334A (zh) * | 2018-04-19 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 基于对象存储服务的访问方法、装置和存储介质 |
CN110019101A (zh) * | 2018-07-23 | 2019-07-16 | 浪潮软件集团有限公司 | 一种区块链对象的外部存储方法及系统 |
CN109375872A (zh) * | 2018-09-27 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 数据访问请求的处理方法、装置和设备及存储介质 |
CN109710743A (zh) * | 2018-12-28 | 2019-05-03 | 郑州云海信息技术有限公司 | 一种存储池的访问方法、装置及电子设备 |
CN109828828A (zh) * | 2019-01-23 | 2019-05-31 | 杭州宏杉科技股份有限公司 | 对象上传方法、装置、电子设备及机器可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022127762A1 (zh) * | 2020-12-14 | 2022-06-23 | 华为云计算技术有限公司 | 云平台及其提供的对象存储服务的桶管理方法 |
CN113126920A (zh) * | 2021-04-02 | 2021-07-16 | 深圳市杉岩数据技术有限公司 | 对象存储批量读取及写入方法、客户端、存储网关及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111147235B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213223B (zh) | 业务管理方法、装置、系统、计算机设备和存储介质 | |
Mukta et al. | Blockchain-based verifiable credential sharing with selective disclosure | |
KR102237014B1 (ko) | 블록체인-기반 인증을 위한 시스템 및 방법 | |
US11196561B2 (en) | Authorized data sharing using smart contracts | |
CN107483509A (zh) | 一种身份验证方法、服务器及可读存储介质 | |
US8621630B2 (en) | System, method and device for cloud-based content inspection for mobile devices | |
US20190306148A1 (en) | Method for oauth service through blockchain network, and terminal and server using the same | |
US11200334B2 (en) | Data sharing via distributed ledgers | |
AU2016407193A1 (en) | System and Method for Proof of Existence | |
US11025425B2 (en) | User security token invalidation | |
US11463431B2 (en) | System and method for public API authentication | |
US11757877B1 (en) | Decentralized application authentication | |
CN111147235B (zh) | 对象访问方法、装置、电子设备及机器可读存储介质 | |
US20230171087A1 (en) | Server Side Authentication | |
CN110213290A (zh) | 数据获取方法、api网关以及存储介质 | |
TW202226802A (zh) | 分布式帳本系統 | |
CN106899564A (zh) | 一种登录方法和装置 | |
KR102271201B1 (ko) | 블록체인을 이용한 개인정보 관리 방법 및 그 방법이 적용된 블록체인 네트워크 관리자 | |
WO2022193494A1 (zh) | 权限控制方法及服务器、终端、存储介质和计算机程序 | |
CN111835523B (zh) | 一种数据请求方法、系统及计算设备 | |
Trueman et al. | Ensuring privacy and data freshness for public auditing of shared data in cloud | |
CN110995437B (zh) | 基于etc系统的用户信息录入方法、装置、设备和存储介质 | |
KR101811285B1 (ko) | 부가인증장치에 기반한 클라우드 시스템의 인증 방법 및 그 클라우드 시스템 | |
Li et al. | Improved efficient privacy-preserving certificateless provable data possession Scheme for cloud storage | |
US11977620B2 (en) | Attestation of application identity for inter-app communications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |