CN110198334B - 基于对象存储服务的访问方法、装置和存储介质 - Google Patents
基于对象存储服务的访问方法、装置和存储介质 Download PDFInfo
- Publication number
- CN110198334B CN110198334B CN201810355613.5A CN201810355613A CN110198334B CN 110198334 B CN110198334 B CN 110198334B CN 201810355613 A CN201810355613 A CN 201810355613A CN 110198334 B CN110198334 B CN 110198334B
- Authority
- CN
- China
- Prior art keywords
- storage service
- object storage
- access
- request
- file
- 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
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示了一种基于对象存储服务的访问方法,所述方法包括:接收基于文件传输协议FTP的访问请求;对所述访问请求进行解析,将所述访问请求映射至抽象文件系统;以及使用所述抽象文件系统提供的映射接口访问对象存储服务。基于本实施例的方案,能够实现FTP至对象存储服务的迁移访问,改善了存储效率,同时保留了用户的使用体验。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种的基于对象存储服务的访问方法和装置、计算机可读存储介质以及电子设备。
背景技术
随着互联网的快速发展,网络上产生和存储的数据也迎来了爆发式的增长。据IDC(Internet Data Center,互联网数据中心)统计,最近十年间,全球数据已增长40多倍,到2020年预计将增长至35ZB(Zettabyte,十万亿亿字节)。面对如此庞大的数据量,传统SAN(Storage Area Network,存储区域网络)等块存储和NAS(Network Attached Storage,网络附属存储)等文件存储系统,由于仅具备PB(Petabyte,千万亿字节)级扩展能力,已经显得有些无能为力。在这种情况下,对象存储服务应运而生。
对象存储服务综合了SAN和NAS的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可用性、跨平台性及安全性的数据共享存储体系结构。从原理上看,对象存储服务一般提供Bucket(容器)和Object(对象)两种数据描述(二者都具有全局唯一的ID),通过REST(Representational State Transfer,代表性状态传输)等Web服务协议来实现对象的读/写和存储资源的访问,并采用扁平化结构来管理所有数据。用户通过接入码认证后,只需根据ID就可以访问对象存储服务中的容器或对象及其相关的数据、元数据和对象属性。
尽管对象存储服务是数据存储的发展趋势之一,但要将大量用户,特别是企业用户采用FTP(File Transfer Protocol,文件传输协议)等传统文件服务器协议方式维护的数据迁移到对象存储服务中,仍然需要很长的接受和过渡时间。如何在尽量不影响这些用户使用体验的前提下,实现从传统文件存储到对象存储服务的平稳迁移访问,也一直是本领域致力解决的问题。
发明内容
为了解决相关技术中从传统文件存储向对象存储服务转换的问题,本发明提供了一种基于对象存储服务的访问方法和装置、计算机可读存储介质以及电子设备。
根据本发明的实施例,提供一种基于对象存储服务的访问方法,所述方法包括:接收基于文件传输协议FTP的访问请求;对所述访问请求进行解析,将所述访问请求映射至抽象文件系统;以及使用所述抽象文件系统提供的映射接口访问对象存储服务。
根据本发明的实施例,提供一种基于对象存储服务的访问装置,包括:接收模块,用于接收基于文件传输协议FTP的访问请求;解析模块,用于对所述访问请求进行解析,将所述访问请求映射至抽象文件系统;以及映射模块,用于使用所述抽象文件系统提供的映射接口访问对象存储服务。
根据本发明的实施例,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于对象存储服务的访问方法。
根据本发明的实施例,提供一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的基于对象存储服务的访问方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
基于本发明实施例提供的基于对象存储服务的访问方法,通过解析FTP访问请求并通过相应接口映射至基于对象存储服务的抽象文件系统中,可以实现FTP至对象存储服务的迁移访问,改善了存储效率,同时保留了用户的使用体验。
通过提供抽象文件系统作为FTP服务与对象存储服务的中间层,来自FTP的访问请求经过解析可直接调用相应的映射接口访问对象存储服务,避免传统的虚拟FTP服务中那样FTP访问请求会先在本地产生操作、再中转至对象存储服务。换言之,本发明实施例基于对象存储服务的访问方案可完全在用户态实现FTP协议的解析与处理,所有的信令与数据包都无需经过内核层和真实文件系统层,数据的传输过程也无需经过磁盘的中转,从而能够提高FTP访问请求的处理效率和响应速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1示出了可以应用本发明实施例基于对象存储服务的访问方法或装置的示例性系统架构的示意图。
图2示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
图3是根据一示例性实施例示出的一种基于对象存储服务的访问方法的流程图。
图4是图3所示实施例中步骤330的一个示例流程图。
图5是图3所示实施例中步骤330的另一个示例流程图。
图6是根据一示例性实施例示出的一种基于对象存储服务的访问装置的框图。
图7是根据另一示例性实施例示出的一种基于对象存储服务的访问装置的框图。
图8是根据一示例性实施例示出的一种基于对象存储服务的访问方法或装置的实施架构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本发明实施例的基于对象存储服务的访问方法或装置的示例性系统架构100的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一种或多种,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。服务器105可以是提供各种服务的服务器。
例如,在服务器105上安装基于本发明提供的安装包后,仅需配置所使用的对象存储服务地址,就可在本地提供标准的FTP服务。用户便可以利用终端设备103(也可以是终端设备101或102)安装主流的FTP客户端进行文件的上传下载。服务器105从终端设备103接收基于FTP的访问请求;对访问请求进行解析,将访问请求映射至抽象文件系统;以及使用抽象文件系统提供的映射接口来访问对象存储服务。
在一些实施例中,本发明实施例所提供的基于对象存储服务的迁移方法一般由服务器105执行,相应地,基于对象存储服务的迁移装置一般设置于服务器105中。在另一些实施例中,某些终端可以具有与服务器相似的功能从而执行本方法。因此,本发明实施例所提供的基于对象存储服务的迁移方法不限定在服务器端执行。
图2示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
特别地,根据本发明的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3至图6所示的各个步骤。
在详细阐述本发明的实施例的技术方案之前,以下介绍一些相关的技术方案、术语和原理。
FTP(File Transfer Protocol,文件传输协议)
FTP最初定义在RFC(Request For Comments,请求标注文档)959中,于1985年10月发布,其被设计成为支持跨平台、简单且易于实现,曾是互联网上最重要的应用层协议之一。时至今日,虽然FTP因为效率和安全问题而愈受诟病,但由于搭建简单和易于维护等优点,仍然有相当数量的企业或机构坚持使用FTP作为提供数据存储和访问服务的基础协议。
FTP协议主要有控制连接和数据传输两类数据包。区别于HTTP协议仅需一个端口(默认端口号80)建立连接,FTP协议通常需要两个端口。其中,一个端口作为控制连接端口(默认端口号21),用于发送指令给服务器以及等待服务器响应;另外一个端口作为数据传输端口(默认端口号20),用于建立数据传输通道,以便从客户端向服务器发送文件以及从服务器向客户端发送文件或目录列表。
进一步,FTP支持Standard(主动方式,简称PORT)和Passive(被动方式,简称PASV)两种数据传输模式。
在PORT模式下,FTP客户端首先一般会动态的选择一个端口(端口号例如在1024以上)与FTP服务器的控制连接端口建立连接;之后,客户端在需要接收数据的时候通过建立的连接发送端口命令,向服务器告知客户端用来接收数据的指定端口;最后,在开始传送数据时,服务器通过数据传输端口连接至客户端的指定端口以发送数据。然而,许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的数据传输端口无法和内部网络的客户端建立一个新的连接,从而造成无法进行数据传输。
在PASV模式下,建立控制通道的过程与PORT模式类似,但在建立连接后客户端发送的不是端口命令,而是PASV命令;FTP服务器在收到PASV命令后,随机打开一个高端端口(端口号例如在1024以上)并且通知客户端;之后,客户端连接FTP服务器的高端端口,FTP服务器进而可通过该高端端口进行数据的传送。由于很多防火墙默认设置为不允许接受外部发起的连接,在FTP服务器位于防火墙后或内网的情况下,客户端无法穿过防火墙打开FTP服务器的高端端口,造成这些FTP服务器不能支持PASV模式的访问。
虚拟FTP服务
相关技术中为了实现FTP向对象存储服务的迁移访问,一般基于成熟的FTP服务器程序(例如vsftpd)和对象存储工具,例如FUSE(Filesystem in Userspace,用户空间文件系统),将对象存储服务虚拟为一个FTP服务。
然而,由于对象存储的接口限制,用户在使用上述虚拟FTP服务的方案写入文件时,服务器会先将文件写到本地磁盘,在收到FTP程序返回的连接关闭(close)消息后,再将本地磁盘中的文件上传到对象存储系统中。换言之,单次文件上传会依次经过vsftpd、FUSE、磁盘、内核的转发,链路较长,造成上传延时高,性能较差,平均上次速度仅为20MB/s左右。另外,这种上传流程对于终端用户的表现就是文件上传在99%进度时卡顿,对于1GB大小的文件要卡顿1分钟左右,因此用户体验极差。
另外,上述虚拟FTP服务的方案中,用户在FTP客户端必须使用预设的用户名与密码进行登录,与对象存储服务的用户体系无法统一。
为解决上述问题,本发明实施例提供一种基于对象存储服务的访问方法和装置、计算机可读存储介质以及电子设备。
以下对本发明实施例的技术方案的原理和实现细节进行详细阐述。
图3是根据一示例性实施例示出的一种基于对象存储服务的访问方法的流程图。如图3所示,该方法可以由任意计算设备执行,可包括以下步骤310-330。
在步骤310中,接收基于文件传输协议FTP的访问请求。
根据本发明的方案,可向存在迁移访问需求的需求方交付一个用户态的安装包,在例如服务器等计算设备上完成安装,只需配置所使用的对象存储服务地址,之后就可在该设备上提供标准的FTP服务。需求方的用户可以不作任何变动,仍然使用原有的FTP客户端进行文件的上传下载,相应的访问请求由完成安装包安装的服务器等计算设备接收并进行后续处理。
如上所述,FTP定义在RFC 959中,常用的访问请求包括以下命令,括号中为命令码。
用户名(USER)
该命令的参数是标记用户的Telnet串。用户标记是访问服务器必须的,此命令通常是控制连接后第一个发出的命令,有些主机还会要求口令和帐户。服务器可以在任何时间接收新的USER命令以改变访问控制和帐户信息。
口令(PASS)
该命令的参数是标记用户口令的Telnet串。该命令紧跟USER命令,在某些站点是完成访问控制不可缺少的一步。
获得文件(RETR)
该命令使服务器传送指定路径内的文件复本到客户端,同时服务器上文件自身的状态和内容不受影响,从客户端侧即可以理解为下载命令。
保存(STOR)
该命令使服务器接收数据连接上传送过来的数据,并将数据保存在服务器的文件中:如果文件已存在,原文件将被覆盖;如果文件不存在,则新建文件;,从客户端侧即可以理解为上传命令。
创建目录(MKD)
该命令用于使服务器按指定路径创建新目录。
删除目录(RMD)
该命令用于使服务器按指定路径删除已有目录。
列表(LIST)
该命令使服务器按指定路径传送列表到客户端:如果指定路径包括一个目录或很多文件,则返回指定路径下的文件列表;如果指定路径仅包括一个文件,则返回文件的当前信息;如果指定路径为空表示客户端当前访问的目录或默认目录。
在步骤320中,对访问请求进行解析并映射至抽象文件系统。
为了实现从FTP服务到对象存储服务的迁移访问,本步骤中首先对接收到的FTP访问请求进行解析。
在一个实施例中,对FTP访问请求的解析可基于能够搭建FTP服务的工具来实现,例如vsftp、pureftp和pyftpdlib等等。其中,pyftpdlib(Python FTP server library,Python FTP服务器类库)相对于vsftp和pureftp而言配置比较简单,在一个实施例中本步骤可基于pyftpdlib来实现访问请求的解析。
进一步,在解析出FTP访问请求后,为了能够按照FTP的方式对请求作出响应,本步骤接续将FTP访问请求映射至抽象文件系统中。
抽象文件系统是相对于真实文件系统而言的概念,其并不是磁盘文件的组织格式,而例如可以是抽象出来的文件树的集合。
举例而言,在对象存储服务中,真实文件系统可能如表1所示,每个对象都具有全局唯一的ID。
文件1 | ID 1 |
文件2 | ID 2 |
文件3 | ID 3 |
表1:对象存储服务的文件组织格式示例
抽象文件系统的目录结构是按照功能区分而不是物理结构,更类似Windows操作系统中“库”的概念,可理解为一组文件夹的集合,并且可通过抽象文件系统提供的API(Application Programming Interface,应用程序编程接口)动态的向其中增加或移除对应的目录。
举例而言,为了在FTP客户端表现出与真实FTP一致的体验,本步骤提供的抽象文件系统可以如表2所示,建立起虚拟路径、文件和ID的映射关系。
虚拟路径 | 文件 | ID |
/os/1.xxx | 文件1 | ID 1 |
/os/software/2.xxx | 文件2 | ID 2 |
/os/office/3.xxx | 文件3 | ID 3 |
表2:抽象文件系统的文件组织格式示例
综上所述,本实施例的抽象文件系统可理解为FTP与对象存储服务的中间层,其可基于解析得到的FTP访问请求,通过相应的映射接口访问对象存储服务。
在一个实施例中,本步骤解析得到的访问请求中携带有访问路径,则将访问请求映射至上述抽象文件系统可包括:将访问路径的顶级目录映射至对象存储服务的存储桶(bucket)名,将除顶级目录之外的其余目录则映射至对象存储服务的对象(object)名。
如前文所述,对象存储服务采用非常扁平化的结构来管理所有数据,区别于常规文件系统那样有很多层级的文件结构,对象存储服务通常只有bucket的概念,每个bucket里全部都是object;每个object都具有全局唯一的ID(例如可以是域名地址)。一般情况下,对象存储服务的用户体系依据对访问ID(accessid)和密钥(secretkey)的鉴权结果来控制bucket和object的访问权限。常规的虚拟FTP服务无法暴露bucket的概念,也就无法实现用户体系的兼容。
相比之下,本实施例将访问路径的第一层目录映射到bucket名,其余的路径则映射到object名,从而实现将对象存储服务的bucket暴露给FTP客户端的用户,为后续实现用户体系的统一提供了可能。在一个实施例中,对访问路径的映射例如可通过pyftpdlib提供的ftp2s接口来实现。
在步骤330中,使用所述抽象文件系统提供的映射接口访问所述对象存储服务。
如步骤320中所述,通过抽象文件系统能够为客户端用户提供形同FTP服务器的访问体验。但要实现从FTP客户端到对象存储服务的迁移访问,本实施例进一步可使用与FTP访问请求对应的映射接口来访问对象存储服务。
在一个实施例中,上述访问请求包括目录创建请求,则步骤330可包括:使用对象存储服务创建带有预设标记的文件,这里的预设标记用于标识目录的存在。由于对象存储服务中没有目录的概念,在用户需要创建一个目录时,步骤320可解析得到上述创建目录的命令码MKD,进而在步骤330中使用与MKD对应的映射接口创建带有预设标记的文件,例如一个以“/”结尾的临时文件,用来标识存在一个目录。在使用pyftpdlib提供抽象文件系统时,这里与MKD对应的映射接口例如可以是mkdir。
在一个实施例中,上述访问请求包括目录遍历请求,则步骤330可包括:在遍历与该目录遍历请求对应的目录时,过滤上述带有预设标记的文件。接续前一实施例所述目录的创建,在用户需要遍历一个目录时,步骤320可解析得到上述列表的命令码LIST,同时得到指定目录的命令参数。相应的,由于抽象文件系统之前已将第一层目录和其余目录分别映射至bucket名和object名,因此这里抽象文件系统可以根据指定目录返回对应bucket中具有对应object名的对象,但同时可过滤掉上述带有预设标记的文件,例如以“/”结尾的临时文件,从而使用户对此文件无感知,符合FTP的使用体验。
在一个实施例中,上述访问请求包括目录询问请求,则步骤330可包括:以与该目录询问请求对应的目录路径为前缀遍历对象存储服务的文件,在确定存在包括该前缀的对象时返回存在该目录路径的响应。接续前文实施例所述目录的创建,在用户需要查询一个目录或文件是否存在时,步骤320可解析得到对应的命令码,同时得到指定目录或文件名的命令参数,相应的,由于抽象文件系统之前已将第一层目录和其余目录分别映射至bucket名和object名,因此这里抽象文件系统可以根据指定目录或文件名为前缀去遍历object,如果存在以该前缀为object名的对象,则向用户返回存在该目录或文件的响应信息。
综上所述,基于本发明实施例提供的基于对象存储服务的访问方法,通过解析FTP访问请求并通过相应接口映射至基于对象存储服务的抽象文件系统中,可以实现FTP至对象存储服务的迁移访问,改善了存储效率,同时保留了用户的使用体验。
另一方面,通过提供抽象文件系统作为FTP服务与对象存储服务的中间层,来自FTP的访问请求经过解析可直接调用相应的映射接口访问对象存储服务,避免像虚拟FTP服务中那样FTP访问请求会先在本地产生操作、再中转至对象存储服务,因此可提高FTP访问请求的处理效率和响应速度。
由此可见,以Linux的操作系统环境为例,本实施例基于对象存储服务的访问方法可完全在用户态实现FTP协议的解析与处理,所有的信令与数据包都无需经过内核层和真实文件系统层,数据的传输过程也无需经过磁盘的中转,从而能够提高FTP访问请求的处理效率和响应速度。
图4示出图3所示实施例中步骤330的一个示例流程图。在该示例中,步骤330基于解析到的FTP文件上传请求调用相应映射接口来访问对象存储服务,如图4所示,例如可包括步骤431-437。
步骤431中,在内存中创建缓冲区,用于接收与文件上传请求对应的文件。
与虚拟FTP服务中将上传文件先写入本地文件系统再上传到对象存储服务不同,本实施例中,在步骤320解析出接收到的FTP访问请求为文件上传请求(例如解析得到命令码为STOR)时,首先在内存中创建缓冲区,用于接收与该上传请求对应的文件。
在步骤432中,确定缓冲区接收的数据是否达到预设的分块大小,若是则转步骤433,否则继续步骤434。
在步骤433中,调用分块上传接口将缓冲区数据上传至对象存储服务。
对象存储服务一般可支持简单上传和分块上传两种文件上传方式。其中,简单上传例如表现为单次HTTP请求完成一个对象的上传,这种方式会限制上传文件的大小,同时无法支持断点续传、乱序上传和并发上传等特性。分块上传则主要用于大文件的上传,可以实现并发的乱序上传,一般包括初始化上传任务、上传所有文件块和提交上传任务三个阶段,并且除了最后一个分块外其他分块大小相同。
本实施例中在缓冲区接收的数据大小达到预设的分块大小时,触发分块上传任务的初始化,调用分块上传接口将缓冲区数据上传至对象存储服务,能够实现文件上传过程的自适应处理。在一个实施例中,步骤431在内存中可按照这里的分块大小来创建缓冲区,从而每当缓冲区数据满载时即可确定接收的数据达到了预设的分块大小,便可触发分块上传。
在步骤434中,确定是否收到与上传文件对应的连接关闭请求,若是则转步骤435,否则继续接收并进行步骤432的判断。
在FTP方式中,客户端在完成文件上传时会调用连接关闭(close)请求终止与服务器的会话。相应的,在一个实施例中,抽象文件系统可基于是否收到对应的连接关闭请求来确定文件上传是否完成,如果没有完成则继续接收数据并返回步骤432进行接收数据大小的判断。
在步骤435中,确定是否调用过分块上传接口,若是则转步骤436,否则转步骤437。
在步骤436中,确定缓冲区中是否还有数据,若是则转步骤433,否则提交上传任务结束流程。
在步骤437中,调用简单上传接口将缓冲区数据上传至对象存储服务。
当步骤434确定已经收到与上传文件对应的连接关闭请求时,表示FTP客户端的文件上传已经完成,此时基于是否调用过分块上传接口以及缓冲区中是否还有数据的判断来确定后续操作。若判断结果均为是,换言之,当已经调用过分块上传接口并且缓冲区中还有数据时,转步骤433调用分块上传接口将当前缓冲区的数据作为最后一个分块上传。当已经调用过分块上传接口但缓冲区中已无数据时,可提交本次分块上传任务结束流程。另一方面,如果步骤435判断未调用过分块上传接口,表明缓冲区中接收的数据未超过预设的分块大小,因此可以调用简单上传接口将缓冲区数据上传至对象存储服务。
综上所述,基于本发明实施例提供的基于对象存储服务的访问方法,通过引入纯内存流式的并发上传,可避免由磁盘中转所引入的I/O代价,从而能够提高文件上传速度;并且反馈给FTP客户端的上传进度就是文件实际写入对象存储系统的进度,不会出现卡顿,从而能够改善用户体验。
结合图3和图4的实施例可以看出,通过提供抽象文件系统作为FTP服务与对象存储服务的中间层,在解析到来自FTP的文件上传请求后,可自适应的调用分块上传接口或简单上传接口,经由内存将文件上传至对象存储服务,避免像虚拟FTP服务中那样文件上传请求会先在本地产生写入操作、再将文件上转至对象存储服务,因此可提高文件上传请求的处理效率和响应速度。
由此可见,以Linux的操作系统环境为例,本实施例基于对象存储服务的访问方法可完全在用户态实现FTP文件上传请求的解析与处理,所有的信令与数据包无需经过内核层和真实文件系统层,数据的传输过程也无需经过磁盘的中转,从而能够提高文件上传请求的处理效率和响应速度,改善用户体验。
图5示出图3所示实施例中步骤330的另一个示例流程图。在该示例中,步骤330基于解析到的FTP鉴权请求调用相应映射接口来访问对象存储服务,如图5所示,例如可包括步骤531-533。
在步骤531中,基于鉴权请求中携带的用户名和密码生成密钥对。
如前文所述,在FTP中用户可使用USER和PASS信令来向服务器提交鉴权信息,信令中分别携带用户名和密码。然而,一般的对象存储服务并没有用户名和密码的概念,而是使用密钥对的机制来进行权限认证。虚拟FTP服务无法将对象存储服务的原生用户体系暴露到FTP服务中,FTP客户端的用户必须使用预设的用户名和密码进行登录,因此FTP与对象存储服务之间存在用户体系的割裂,增加维护成本,用户体验也不佳。
本实施例中可引入对象存储服务的密钥对机制,将对象存储服务的访问ID(accessid)和密钥(secretkey)作为用户名和密码分发给FTP客户端的用户。这样一来,用户在使用用户名和密码进行FTP服务的登录时,服务器根据解析到的鉴权请求,可基于其中携带的用户名和密码生成密钥对,进行后续对象存储服务的权限认证。
在步骤532中,使用所生成的密钥对并调用权限认证接口访问对象存储服务,确定密钥对是否正确,若是则转步骤533,否则禁止访问并结束流程。
接续前一步骤,响应于解析到的鉴权请求,服务器基于其中携带的用户名和密码生成密钥对,调用权限认证接口来访问对象存储服务。如果认证不通过,表明当前用户使用的用户名和密码与系统分发的访问ID(accessid)和密钥(secretkey),因此可禁止访问并结束流程。
在步骤533中,返回鉴权请求成功的响应。
接续步骤531,响应于解析到的鉴权请求,服务器基于其中携带的用户名和密码生成密钥对,调用权限认证接口来访问对象存储服务。如果认证通过,则向客户端返回鉴权请求成功的响应,进而可以开始后续的访问请求处理。
在一个实施例中,可使用密钥对调用存储桶列表(list bucket)请求来判断密钥对是否正确。如果list bucket请求调用成功,则确定所述密钥对正确,进而返回鉴权请求成功的响应。相应的,在收到鉴权请求成功的响应后,服务器端可持久化保存本次的鉴权信息,后续所有访问请求都可使用保存的用户名和密码进行鉴权。
综上所述,基于本发明实施例提供的基于对象存储服务的访问方法,在FTP客户端可以使用对象存储服务的密钥对,无需配置额外的用户鉴权信息;这样一来,在FTP与对象存储服务之间实现了用户体系的统一,进而使FTP客户端对文件的访问权限能够与对象存储服务的对象读写权限保持一致。
下述为本发明装置实施例,可以用于执行本发明上述基于对象存储服务的访问方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明基于对象存储服务的访问方法实施例。
图6是根据一示例性实施例示出的一种基于对象存储服务的访问装置的框图。如图6所示,本实施例的访问装置包括接收模块61、解析模块62和映射模块63。
接收模块61用于接收基于FTP的访问请求;
解析模块62用于对所述访问请求进行解析,将所述访问请求映射至抽象文件系统。
映射模块63用于使用所述抽象文件系统提供的映射接口访问对象存储服务。
基于本发明实施例提供的基于对象存储服务的访问方法,通过解析FTP访问请求并通过相应接口映射至基于对象存储服务的抽象文件系统中,可以实现FTP至对象存储服务的迁移访问,改善了存储效率,同时保留了用户的使用体验。
图7是根据另一示例性实施例示出的一种基于对象存储服务的访问装置的框图。如图7所示,在图6所示实施例的基础上,本实施例的访问装置中,解析模块62包括协议解析单元621和抽象文件系统单元622;映射模块63包括多个接口单元631至63N,且映射模块63与对象存储服务系统70连接。
这里需要说明的是,对象存储服务系统70既可以设置为本实施例访问装置的组成部分,也可以设置为独立的部分;从实施角度而言,本实施例基于对象存储服务的访问装置可以集成对象存储服务功能,也可以是仅提供访问已有对象存储服务系统的功能,本发明对此并无限制。
在一个实施例中,对象存储服务系统70包括多个接入节点71和数据服务器72。其中,数据服务器72用于提供实际的数据存储功能,接入节点71用于按照对象存储服务的规范提供对数据服务器72的访问接口。
接续,协议解析单元621用于解析出接收模块61接收到的各种FTP访问请求,例如包括但不限于图示的口令(PASS)611、保存(STOR)612、列表(LIST)613等等。
在一个实施例中,对FTP访问请求的解析可基于能够搭建FTP服务的工具来实现,例如vsftp、pureftp和pyftpdlib等等。其中,pyftpdlib相对于vsftp和pureftp而言配置比较简单,在一个实施例中协议解析单元621可基于pyftpdlib来实现访问请求的解析。
抽象文件系统单元622用于根据解析出的访问请求调用映射模块63中的相应映射接口单元。
在一个实施例中,协议解析单元621解析得到的访问请求中携带有访问路径,则抽象文件系统单元622进一步用于将访问路径的顶级目录映射至对象存储服务的存储桶(bucket)名,将除顶级目录之外的其余目录则映射至对象存储服务的对象(object)名。由此实现将对象存储服务的bucket暴露给FTP客户端的用户,为后续实现用户体系的统一提供了可能。
映射模块63包括多个接口单元631至63N,分别对应于协议解析单元621解析出的各种FTP访问请求,例如分别包括目录创建接口单元631、目录遍历接口单元632、目录查询接口单元633、文件上传接口单元634、用户鉴权接口单元635以及其他映射接口单元63N等等。
在一个实施例中,协议解析单元621解析得到目录创建请求,则抽象文件系统单元622可调用目录创建接口单元631,使用对象存储服务创建带有预设标记的文件,这里的预设标记用于标识目录的存在。由于对象存储服务中没有目录的概念,在用户需要创建一个目录时,协议解析单元621例如解析得到创建目录的命令码MKD,进而抽象文件系统单元622可调用目录创建接口单元631创建带有预设标记的文件,例如一个以“/”结尾的临时文件,用来标识存在一个目录。
在一个实施例中,协议解析单元621解析得到目录遍历请求,则抽象文件系统单元622可调用目录遍历接口单元632,在遍历与该目录遍历请求对应的目录时,过滤上述带有预设标记的文件。接续前一实施例所述目录的创建,在用户需要遍历一个目录时,协议解析单元621例如可解析得到上述列表的命令码LIST,同时得到指定目录的命令参数。相应的,由于抽象文件系统之前已将第一层目录和其余目录分别映射至bucket名和object名,因此这里抽象文件系统单元622可调用目录遍历接口单元632,根据指定目录返回对应bucket中具有对应object名的对象,但同时可过滤掉上述带有预设标记的文件,例如以“/”结尾的临时文件,从而使用户对此文件无感知,符合FTP的使用体验。
在一个实施例中,协议解析单元621解析得到目录询问请求,则抽象文件系统单元622可调用目录查询接口单元633,以与该目录询问请求对应的目录路径为前缀遍历对象存储服务的文件,在确定存在包括该前缀的对象时返回存在该目录路径的响应。接续前文实施例所述目录的创建,在用户需要查询一个目录或文件是否存在时,协议解析单元621可解析得到对应的命令码,同时得到指定目录或文件名的命令参数。相应的,由于抽象文件系统之前已将第一层目录和其余目录分别映射至bucket名和object名,因此这里抽象文件系统单元622可调用目录查询接口单元633,根据指定目录或文件名为前缀去遍历object,如果存在以该前缀为object名的对象,则向用户返回存在该目录或文件的响应信息。
基于上述实施例提供的基于对象存储服务的访问装置,通过解析FTP访问请求并通过相应接口映射至基于对象存储服务的抽象文件系统中,可以实现FTP至对象存储服务的迁移访问,改善了存储效率,同时保留了用户的使用体验。
另一方面,通过提供抽象文件系统作为FTP服务与对象存储服务的中间层,来自FTP的访问请求经过解析可直接调用相应的映射接口访问对象存储服务,避免像虚拟FTP服务中那样FTP访问请求会先在本地产生操作、再中转至对象存储服务,因此可提高FTP访问请求的处理效率和响应速度。
以Linux的操作系统环境为例,本实施例基于对象存储服务的访问装置可完全在用户态实现FTP协议的解析与处理,所有的信令与数据包都无需经过内核层和真实文件系统层,数据的传输过程也无需经过磁盘的中转,从而能够提高FTP访问请求的处理效率和响应速度。
接续,在一个实施例中,协议解析单元621解析得到文件上传请求,则抽象文件系统单元622可调用文件上传接口单元634,在内存中创建缓冲区用于接收与文件上传请求对应的文件。当缓冲区接收的数据大小达到预设的分块大小时,文件上传接口单元634调用分块上传接口进行上传;当收到与上传文件对应的连接关闭请求时,如果缓冲区中还有数据并且调用过分块上传接口,则文件上传接口单元634将当前缓冲区中的数据作为最后一个分块上传;如果缓冲区中还有数据但未调用过分块上传接口,则文件上传接口单元634调用简单上传接口将当前缓冲区中的数据作为一个对象进行上传。
基于上述实施例提供的基于对象存储服务的访问装置,通过引入纯内存流式的并发上传,可避免由磁盘中转所引入的I/O代价,从而能够提高文件上传速度;并且反馈给FTP客户端的上传进度就是文件实际写入对象存储系统的进度,不会出现卡顿,从而能够改善用户体验。
另外,通过提供抽象文件系统作为FTP服务与对象存储服务的中间层,在解析到来自FTP的文件上传请求后,可自适应的调用分块上传接口或简单上传接口,经由内存将文件上传至对象存储服务,避免像虚拟FTP服务中那样文件上传请求会先在本地产生写入操作、再将文件上转至对象存储服务,因此可提高文件上传请求的处理效率和响应速度。
以Linux的操作系统环境为例,本实施例基于对象存储服务的访问方法可完全在用户态实现FTP文件上传请求的解析与处理,所有的信令与数据包无需经过内核层和真实文件系统层,数据的传输过程也无需经过磁盘的中转,从而能够提高文件上传请求的处理效率和响应速度,改善用户体验。
接续,在一个实施例中,协议解析单元621解析得到鉴权请求,则抽象文件系统单元622可调用用户鉴权接口单元635,基于鉴权请求中携带的用户名和密码生成密钥对并访问对象存储服务,在确定所述密钥对正确时返回鉴权请求成功的响应,否则可禁止访问并结束流程。在一个实施例中,用户鉴权接口单元635使用上述密钥对调用存储桶列表(listbucket)请求,并在list bucket请求调用成功时确定密钥对正确。
基于上述实施例提供的基于对象存储服务的访问装置,在FTP客户端可以使用对象存储服务的密钥对,无需配置额外的用户鉴权信息;这样一来,在FTP与对象存储服务之间实现了用户体系的统一,进而使FTP客户端对文件的访问权限能够与对象存储服务的对象读写权限保持一致。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
图8是根据一示例性实施例示出的一种基于对象存储服务的访问方法或装置的实施架构示意图,其示出了以软件产品的形式来实施本发明访问方法或装置时的总体架构。如图8所示,本发明基于对象存储服务的访问方法或装置可实施为包括协议解析层81、抽象文件系统层82和映射接口层83。其中,协议解析层81用于对接收的FTP访问请求84进行解析,抽象文件系统层82按照解析出的请求,通过映射接口层83来访问对象存储服务层85。
这里的对象存储服务层85既可以设置为本实施例访问方法或装置实施架构的组成部分,也可以设置为独立的部分;从实施角度而言,本实施例访问方法或装置的实施架构可以集成对象存储服务功能,也可以是仅提供访问已有对象存储服务系统的功能,本发明对此并无限制。
在一个实施例中,对象存储服务层85包括多个接入节点851和数据服务器852。其中,数据服务器852用于提供实际的数据存储功能,接入节点851用于按照对象存储服务的规范提供对数据服务器852的访问接口。
接续,由协议解析层81解析的FTP访问请求84,例如包括但不限于图示的口令(PASS)841、保存(STOR)842、列表(LIST)843等等。
在一个实施例中,协议解析层81可基于能够搭建FTP服务的工具来实现,例如vsftp、pureftp和pyftpdlib等等。其中,pyftpdlib相对于vsftp和pureftp而言配置比较简单,在一个实施例中协议解析层81可基于pyftpdlib来实现访问请求的解析。
基于协议解析层81解析出的各种FTP访问请求,抽象文件系统层82调用映射函数层83中的相应映射函数,例如分别包括目录创建函数831、目录遍历函数832、目录查询函数833、文件上传函数834、用户鉴权函数835以及其他映射函数83N等等。各函数的功能分别可参见上文对图7实施例中目录创建接口单元631、目录遍历接口单元632、目录查询接口单元633、文件上传接口单元634、用户鉴权接口单元635的描述,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (8)
1.一种基于对象存储服务的访问方法,其特征在于,所述方法包括:
接收基于文件传输协议FTP的访问请求;
对所述访问请求进行解析,将解析得到的访问路径的顶级目录映射至所述对象存储服务的存储桶bucket名,并将所述访问路径中除所述顶级目录外的其他目录映射至所述对象存储服务的对象object名;
使用抽象文件系统提供的映射接口访问对象存储服务;
其中,使用所述抽象文件系统提供的映射接口访问对象存储服务,包括:
响应于所述访问请求包含的目录创建请求,使用所述对象存储服务创建带有预设标记的临时文件,通过所述临时文件标识目录的存在;
响应于所述访问请求包含的目标遍历请求,根据指定目录返回对应bucket中具有对应object名的对象,并过滤掉所述临时文件。
2.如权利要求1所述的方法,所述访问请求包括目录询问请求,其特征在于,所述使用所述抽象文件系统提供的映射接口访问所述对象存储服务包括:
以与所述目录询问请求对应的目录路径为前缀遍历所述对象存储服务的文件,在确定存在包括该前缀的对象时返回存在该目录路径的响应。
3.如权利要求1-2任一项所述的方法,所述访问请求包括文件上传请求,所述对象存储服务支持简单上传接口及分块上传接口,其特征在于,所述的使用所述抽象文件系统提供的映射接口访问所述对象存储服务包括:
在内存中创建缓冲区,用于接收与所述文件上传请求对应的文件;
当所述缓冲区接收的数据大小达到预设的分块大小时,调用所述分块上传接口进行上传;以及
当收到与所述文件对应的连接关闭请求时,如果所述缓冲区中还有数据并且调用过所述分块上传接口,将当前缓冲区中的数据作为最后一个分块上传;如果所述缓冲区中还有数据但未调用过所述分块上传接口,则调用所述简单上传接口将当前缓冲区中的数据作为一个对象进行上传。
4.如权利要求1-2任一项所述的方法,所述访问请求包括鉴权请求,其特征在于,所述的使用所述抽象文件系统提供的映射接口访问所述对象存储服务包括:
基于所述鉴权请求中携带的用户名和密码生成密钥对并访问所述对象存储服务;
在确定所述密钥对正确时返回所述鉴权请求成功的响应。
5.如权利要求4所述的方法,其特征在于,还包括:
使用所述密钥对调用存储桶列表list bucket请求,并在所述list bucket请求调用成功时确定所述密钥对正确。
6.一种基于对象存储服务的访问装置,其特征在于,所述装置包括:
接收模块,用于接收基于文件传输协议FTP的访问请求;
解析模块,用于对所述访问请求进行解析,将解析得到的访问路径的顶级目录映射至所述对象存储服务的存储桶bucket名,并将所述访问路径中除所述顶级目录外的其他目录映射至所述对象存储服务的对象object名;
映射模块,用于使用抽象文件系统提供的映射接口访问对象存储服务;
其中,所述映射模块配置为:
响应于所述访问请求包含的目录创建请求,使用所述对象存储服务创建带有预设标记的临时文件,通过所述临时文件标识目录的存在;
响应于所述访问请求包含的目标遍历请求,根据指定目录返回对应bucket中具有对应object名的对象,并过滤掉所述临时文件。
7.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至5中任一项所述的基于对象存储服务的访问方法。
8.一种电子设备,其特征在于,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据权利要求1至5中任一项所述的基于对象存储服务的访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355613.5A CN110198334B (zh) | 2018-04-19 | 2018-04-19 | 基于对象存储服务的访问方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355613.5A CN110198334B (zh) | 2018-04-19 | 2018-04-19 | 基于对象存储服务的访问方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110198334A CN110198334A (zh) | 2019-09-03 |
CN110198334B true CN110198334B (zh) | 2022-03-25 |
Family
ID=67751068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810355613.5A Active CN110198334B (zh) | 2018-04-19 | 2018-04-19 | 基于对象存储服务的访问方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110198334B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147235B (zh) * | 2019-12-23 | 2022-11-11 | 杭州宏杉科技股份有限公司 | 对象访问方法、装置、电子设备及机器可读存储介质 |
CN111491037B (zh) * | 2020-06-28 | 2020-10-27 | 四川新网银行股份有限公司 | 通过sftp数据流与对象存储服务器的通信方法 |
CN112003944B (zh) * | 2020-08-26 | 2023-02-28 | 北京浪潮数据技术有限公司 | 一种实现对象文件上传的方法、系统、设备及存储介质 |
CN112118235A (zh) * | 2020-08-31 | 2020-12-22 | 山东浪潮通软信息科技有限公司 | 一种基于sftp的文件管理方法、设备及介质 |
CN112187921B (zh) * | 2020-09-28 | 2023-04-07 | 北京浪潮数据技术有限公司 | 一种对象文件下载方法、装置、系统、服务器和存储介质 |
CN112749127A (zh) * | 2020-12-28 | 2021-05-04 | 北京聚云科技有限公司 | 一种用于模型训练的数据提供方法及系统 |
CN113766006B (zh) * | 2021-07-29 | 2024-02-23 | 北京思特奇信息技术股份有限公司 | 一种基于ftp协议的实时文件传输方法及系统 |
CN113806668A (zh) * | 2021-09-26 | 2021-12-17 | 中国科学院计算机网络信息中心 | 一种对象存储系统的数据访问方法及对象存储系统 |
CN114302085B (zh) * | 2021-12-23 | 2024-02-20 | 云从科技集团股份有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN114466083B (zh) * | 2022-01-19 | 2023-11-17 | 北京星辰天合科技股份有限公司 | 支持协议互通的数据存储系统 |
CN115150419B (zh) * | 2022-09-05 | 2022-12-06 | 杭州华卓信息科技有限公司 | 一种混合云对象存储的配置和访问方法及系统 |
CN116614559B (zh) * | 2023-07-18 | 2023-11-10 | 天津市天河计算机技术有限公司 | 一种数据传输方法、设备、系统和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082793A (zh) * | 2010-12-30 | 2011-06-01 | 北京汉邦高科数字技术有限公司 | 一种音视频服务配置的方法 |
CN102833337A (zh) * | 2012-08-30 | 2012-12-19 | 北京星网锐捷网络技术有限公司 | 一种ftp文件上传、下载方法及装置 |
CN106202220A (zh) * | 2016-06-28 | 2016-12-07 | 北京百迈客云科技有限公司 | 一种读取对象存储系统中数据的方法以及装置 |
CN106933872A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种通过传统文件系统接口访问云存储服务的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144202B (zh) * | 2013-12-11 | 2016-05-04 | 腾讯科技(深圳)有限公司 | Hadoop分布式文件系统的访问方法、系统和装置 |
-
2018
- 2018-04-19 CN CN201810355613.5A patent/CN110198334B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082793A (zh) * | 2010-12-30 | 2011-06-01 | 北京汉邦高科数字技术有限公司 | 一种音视频服务配置的方法 |
CN102833337A (zh) * | 2012-08-30 | 2012-12-19 | 北京星网锐捷网络技术有限公司 | 一种ftp文件上传、下载方法及装置 |
CN106933872A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种通过传统文件系统接口访问云存储服务的方法及装置 |
CN106202220A (zh) * | 2016-06-28 | 2016-12-07 | 北京百迈客云科技有限公司 | 一种读取对象存储系统中数据的方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110198334A (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110198334B (zh) | 基于对象存储服务的访问方法、装置和存储介质 | |
US10171591B2 (en) | Connecting public cloud with private network resources | |
US9391801B2 (en) | Virtual private networks distributed across multiple cloud-computing facilities | |
US10063430B2 (en) | Systems and methods for workspace interaction with cloud-based applications | |
US20190141022A1 (en) | On-premise and off-premise communication | |
US10360410B2 (en) | Providing containers access to container daemon in multi-tenant environment | |
US10762193B2 (en) | Dynamically generating and injecting trusted root certificates | |
US20120278878A1 (en) | Systems and methods for establishing secure virtual private network communications using non-privileged vpn client | |
US10645172B1 (en) | Socket tunneling connections in a service provider environment | |
US11106477B2 (en) | Execution of owner-specified code during input/output path to object storage service | |
CN110489192B (zh) | 远程通信方法及装置、电子设备 | |
CN107580011B (zh) | 一种数据共享方法及桌面云服务端 | |
CN108427677B (zh) | 一种对象访问方法、装置及电子设备 | |
US11360948B2 (en) | Inserting owner-specified data processing pipelines into input/output path of object storage service | |
US20210096883A1 (en) | Inserting executions of owner-specified code into input/output path of object storage service | |
US20200344112A1 (en) | On-premise and off-premise debugging | |
CN106648838B (zh) | 一种资源池管理的配置方法及装置 | |
WO2023125152A1 (zh) | 一种应用的统一配置管理方法、系统、装置及存储介质 | |
WO2023093197A1 (zh) | 一种应用管理方法及相关系统 | |
JP7012079B2 (ja) | オンプレミスとオフプレミスとの通信方法、システム、プログラム | |
US11394761B1 (en) | Execution of user-submitted code on a stream of data | |
US10623370B1 (en) | Secure data flow for virtual workspaces | |
CN114338496B (zh) | 一种资源转发方法、装置、终端和计算机存储介质 | |
US11656892B1 (en) | Sequential execution of user-submitted code and native functions | |
JP2022058265A (ja) | コンピュータ実装方法、コンピュータシステム、及びコンピュータプログラム(ユーザリクエスト処理のための隔離コンテナの提供) |
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 |