CN104919451A - 用于与在线存储系统的数据同步的应用编程接口 - Google Patents

用于与在线存储系统的数据同步的应用编程接口 Download PDF

Info

Publication number
CN104919451A
CN104919451A CN201380066744.7A CN201380066744A CN104919451A CN 104919451 A CN104919451 A CN 104919451A CN 201380066744 A CN201380066744 A CN 201380066744A CN 104919451 A CN104919451 A CN 104919451A
Authority
CN
China
Prior art keywords
data
synchronous
storage subsystem
electronic equipment
online storage
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
Application number
CN201380066744.7A
Other languages
English (en)
Other versions
CN104919451B (zh
Inventor
B·E·史密斯
S·贝泽克
J·波特
A·特怀曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dropbox Inc
Original Assignee
Dropbox Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dropbox Inc filed Critical Dropbox Inc
Publication of CN104919451A publication Critical patent/CN104919451A/zh
Application granted granted Critical
Publication of CN104919451B publication Critical patent/CN104919451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

所公开的实施例提供一种管理对与在线存储系统相关联的数据的访问的系统。在操作期间,该系统利用电子设备上的应用通过应用编程接口(API)使能电子设备和在线存储系统之间的数据的同步。接着,系统使用API来向应用提供数据的同步状态,其中同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。

Description

用于与在线存储系统的数据同步的应用编程接口
技术领域
所公开的实施例涉及在线存储系统。更具体地,所公开的实施例涉及用于与在线存储系统的数据同步的应用编程接口(API)。
背景技术
网络使能的设备上的数据通常在诸如文件托管服务、云存储服务和/或远程备份服务之类的在线存储系统上被同步、被存储、被共享和/或被备份。例如,诸如图像、音频、视频、文档、可执行文件和/或其它文件之类的数据可以存储在诸如个人计算机、膝上计算机、便携式媒体播放器、台式计算机和/或移动电话之类的网络使能的电子设备上。电子设备的用户还可以具有云存储服务的账户,其允许利用云存储服务存储和/或备份文件的拷贝。云存储服务还可以将拷贝发送给该用户和/或被授权访问文件的其他用户的其它电子设备,从而在云存储服务和电子设备之间同步文件。
遗憾的是,电子设备与在线存储系统之间的数据同步通常关联于与电子设备与在线存储系统的同步状态有关的受限的交互和信息。例如,电子设备可以使用本地安装的客户端应用来利用在线存储系统创建、删除、修改和/或拷贝文件。可替代地,电子设备上的第三方应用可以使用应用编程接口(API)来利用在线存储系统执行读取、写入、拷贝和/或其它基于文件的操作。在两种情况下,电子设备可能都没有有关与这样的基于文件的操作相关联的状态的信息。例如,客户端应用和/或第三方应用可能无法识别与失败的文件传输相关联的错误和/或检测在线存储系统上文件的更新的版本。因此,电子设备的用户在同步到来自在线存储系统的数据的最新的和/或正确版本时可能体验到简化的功能性和/或问题。
因此,电子设备与在线存储系统之间的数据同步可以通过使得能够从电子设备访问与该同步相关联的同步状态而得到促进。
发明内容
所公开的实施例提供一种管理对与在线存储系统相关联的数据的访问的系统。在操作期间,该系统利用电子设备上的应用通过应用编程接口(API)使能电子设备和在线存储系统之间的数据的同步。接着,系统使用API来向应用提供数据的同步状态,其中同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。
在一些实施例中,该系统还可以使用API来向应用提供包括数据的文件系统的文件系统同步状态,其中,文件系统同步状态包括以下的至少一者:元数据同步状态、在线状态、运行状态、就绪状态和改变状态。
在一些实施例中,该系统还利用电子设备通过API使能用于文件系统的元数据的同步。
在一些实施例中,使用打开操作、创建操作、删除操作和移动操作中的至少一者来使能利用电子设备的、用于文件系统的元数据的同步。
在一些实施例中,改变状态与路径、目录和文件中的至少一者相关联。
在一些实施例中,如果系统在电子设备与在线存储系统之间的数据的同步期间访问数据,则访问数据涉及:
(i)如果同步状态包括已缓存状态,则从电子设备上的缓存访问数据;
(ii)如果同步状态不包括已缓存状态,则从在线存储系统访问数据;
(iii)如果数据的更新的版本可用,则访问该更新的版本;以及
(iv)如果数据不可用,则指示错误状态。
在一些实施例中,同步状态指示在线存储系统上的数据与电子设备上的缓存中的数据的拷贝之间的同步。
附图说明
图1示出根据所公开的实施例的系统的示意图。
图2示出根据所公开的实施例的用于管理对与在线存储系统相关联的数据的访问的系统。
图3示出图示出根据所公开的实施例管理对与在线存储系统相关联的数据的访问的过程的流程图。
图4示出图示出根据所公开的实施例在电子设备与在线存储系统之间的数据同步期间访问数据的过程的流程图。
图5示出根据所公开的实施例的计算机系统。
在附图中,相似的标号指代相同的附图元素。
具体实施方式
以下描述是为了使得本领域任何技术人员都能够进行和使用这些实施例,并且是在具体应用及其要求的语境下提供的。对所公开的实施例的各种修改对于本领域技术人员将是显而易见的,并且这里限定的一般原理可以在不偏离本公开的精神和范围的情况下应用于其它实施例和应用。因此,本发明不限于所示出的实施例,而是要符合与这里所公开的原理和特征一致的最宽范围。
具体实施方式中描述的数据结构和代码通常被存储在计算机可读存储介质上,计算机可读存储介质可以是能够存储代码和/或数据以供计算机系统使用的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁存储设备和光存储设备,诸如盘驱动器、磁带、CD(致密盘)、DVD(数字通用盘或数字视频盘),或现在已知的或将来开发的能够存储代码和/或数据的其它介质。
具体实施方式中描述的方法和处理可以实现为代码和/或数据,其可以被存储在如上所述的计算机可读存储介质中。当计算机系统读取和执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行被实现为数据结构和代码并被存储在计算机可读存储介质内的方法和处理。
并且,本文中描述的方法和处理可以被包括在硬件模块或装置中。这些模块或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或代码条的专用或共用处理器,和/或现在已知的或之后开发的其它可编程逻辑设备。当硬件模块或装置被激活时,它们执行被包括在它们内的方法和处理。
所公开的实施例提供用于管理对与在线存储系统相关联的数据的访问的方法和系统。如图1中所示,可以从一组电子设备104-110访问在线存储系统102,电子设备104-110诸如是个人计算机、膝上计算机、台式计算机、移动电话、个人数字助理、便携式媒体播放器、数字媒体接收器和/或其它网络使能的电子设备。电子设备104-110与在线存储系统102之间的通信可以通过一个或多个网络被使能,诸如局域网(LAN)、广域网(WAN)、个人局域网(PAN),虚拟专用网、内联网、蜂窝网络、WiFi网络、蓝牙(BluetoothTM是蓝牙SIG公司的注册商标)网络、通用串行总线(USB)网络和/或以太网络。
在在线存储系统102的使用期间,电子设备104-110的用户可以执行与数据的存储、备份、检索、共享和/或同步有关的任务。例如,每个用户都可以使用电子设备(例如,电子设备104-110)来利用用户在在线存储系统102上的用户账户存储图像、音频、视频、文档、可执行文件和/或其它文件。为了访问文件和/或用户账户,用户可以从电子设备向在线存储系统102提供该用户账户的认证凭证。用户也可以通过从其它电子设备向在线存储系统102提供相同的认证凭证、授权从其它用户的用户账户对文件的访问和/或将文件放置在在线存储系统102上的可公共访问的目录中来使能从其它电子设备对文件的访问。
为了使能对在线存储系统102上的数据的这样的存储、备份、共享、同步和/或访问,在线存储系统102可以使用一种或多种存储机制来存储数据。例如,在线存储系统102可以使用一个或多个服务器、云存储装置、网络附连存储装置(NAS)、存储局域网(SAN)、廉价磁盘冗余阵列(RAID)系统和/或其它可网络访问的存储装置来存储数据。在线存储系统102另外还可以使用各种文件系统体系架构和/或层级来存储数据并使得存储来自电子设备104-110的数据所涉及的位置和/或机制模糊。
在一个或多个实施例中,在线存储系统102与支持电子设备104-110和在线存储系统102之间的自动数据同步的客户端应用相关联。例如,客户端应用可以安装在每个电子设备上并在电子设备和在线存储系统102之间自动同步与指定目录(例如,新的、删除的、修改的、拷贝的和/或移动的文件和/或目录中的子目录)相关联的改变。为了执行这种同步,客户端应用可以监视电子设备上的对应于该指定目录的本地目录并将本地目录的改变与在线存储系统102上对应于该指定目录的远程目录同步。反之,客户端应用可以识别远程目录的改变并将该改变传播至本地目录。因为客户端应用被电子设备的用户直接使用,因此客户端应用可以向用户隐藏和/或省略同步的细节。
如图2中所示,电子设备202与在线存储系统102之间的交互还可以由应用编程接口(API)204利用电子设备202上的应用210来促进,应用210诸如是不直接隶属于在线存储系统102的第三方应用。例如,API 204可以提供与用于读取、写入、拷贝、移动、删除和/或以其它方式访问在线存储系统102上的数据216的操作有关的一组方法和/或功能调用。进而,应用210可以调用方法和/或功能调用来执行任务,诸如备份应用210的应用数据和/或与在线存储系统102和/或其它电子设备同步与应用210相关联的用户数据(例如,图像、音频、视频、文本、文档等等)。
更具体地,与API 204相关联的同步装置206可以同步电子设备202的本地缓存212中的数据218与在线存储系统102上的数据216。如以上所述,这样的同步可以通过检测每组数据216-218中的改变并将这些改变传播到其它组数据来完成。例如,同步装置206可以使用长轮询技术来从在线存储系统102接收数据216的改变并将这些改变应用于数据218。同步装置206还可以允许应用210检测数据218的改变并将这些改变上载到在线存储系统102以用于与数据216同步。
在一个或多个实施例中,数据216-218的同步基于应用210到API 204可用的文件级操作,诸如读取操作、写入操作、更新操作和/或关闭操作。这些操作可以看起来是在与这些操作相关联的调用被应用210做出之后立即完成的。与此同时,API 204可以基于在线存储系统102的可用性和/或电子设备202和在线存储系统102之间的网络连接,把操作传播给在线存储系统102和/或从在线存储系统102获取与数据216-218相关联的更新。
另外,同步装置206可以使用与包含数据216的文件系统214的元数据220与缓存212中的对应一组元数据222同步。元数据220-222可以代表与数据216-218相关联的目录层级和路径。例如,元数据220-222可以描述文件系统214中的目录中可被电子设备202和/或应用210访问的内容(例如文件、子目录等)。类似数据216-218,元数据220-222可以通过检测每组元数据的改变并将改变传播到其它组元数据而被同步。
另外,元数据220-222的同步可以基于应用210到API 204可用的文件系统级的操作,诸如打开操作、创建操作、删除操作和/或移动操作。在这样的操作能够被应用210使用之前,同步装置206可以通过获取作为来自在线存储系统102的元数据220的拷贝的元数据222和/或获取作为来自电子设备20上的缓存212和/或其它本地存储装置的元数据222的拷贝的元数据220来执行元数据220-222的第一同步。在第一同步完成之后,同步装置206可以使能从电子设备202对文件系统214和/或数据216的访问并通过如下步骤来同步对元数据220-222的改变:从包含改变的这组元数据获取改变并将改变应用于另一组元数据。
为了促进应用210进行的数据216-218和元数据220-222的鲁棒同步,与API 204相关联的通信装置208可以向应用210提供电子设备202和在线存储系统102之间的数据216-218的同步状态224和/或元数据220-222的文件系统同步状态226。同步状态224可以指定与和数据216-218的同步相关联的操作有关的不同状态的数目。例如,对于要在电子设备202和在线存储系统102之间同步的数据216-218的每个文件和/或其它单元,同步状态224可以包括下载状态、上载状态、空闲状态、传输进展、已缓存状态和/或错误状态。
类似地,文件系统同步状态226可以指示与元数据220-222的同步相关联的操作有关的各种状态。例如,对于要在电子设备202和在线存储系统102之间同步的元数据220-222,文件系统同步状态226可以包括元数据同步状态、在线状态、运行状态、就绪状态,和/或改变状态。
更具体地,与数据216-218的同步相关联的上述操作和/或状态可以使用用于文件状态的接口和用于文件的接口来实现。用于文件状态的接口可以包括以下示例性实现:
在该接口内,“DBFileState”类型可以包括三个值中的一个:“DBFileStateDownloading”值,其指示同步状态224是当前在下载(例如,下载状态);“DBFileStateIdle”值,其指示同步状态224是当前空闲状态(例如,空闲状态);或“DBFileStateUploading”值,其指示同步状态224是当前在上载(例如,上载状态)。接口还可以在同步状态224中包括或不包括:使用命名为“cached”的Boolean值的缓存状态(例如,文件的缓存),使用命名为“progress”的浮点值的与“DBFileState”相关联的下载和/或上载相关联的传输进展,以及使用由“error”表示的错误代码的与下载和/或上载相关联的错误状态。
类似地,用于文件的接口可以包括如下示例性实现:
在该接口内,一组方法调用“readHandle”、“readData”和“readString”可以用来从文件读取数据(例如,数据216-218)。类似地,一组方法调用“writeContentsOfFile”、“writeData”和“writeString”可以用来从缓存212中的文件的拷贝、缓存212中的一组字节、字符串和/或缓存212的文件的更新的版本来写在线存储系统102上的文件。“close”方法调用可以被调用来关闭文件和防止对文件的后续读取和/或写入直到文件被再次打开为止。该接口还可以使用“open”值来指定文件是否是打开的,使用“status”来指示如上所述的文件的“DBFileStatus”,以及使用“newerStatus”来指示文件的更新的版本的“DBFileStatus”。换而言之,接口可以促进电子设备202和在线存储系统102之间的文件的不同版本的同步和/或管理。
并且,与元数据220-222的同步相关联的上述操作和/或状态可以使用用于文件系统(例如,文件系统214)的接口来实现。用于文件系统的接口可以包括如下示例性实现:
在该接口内,“DBSyncStatus”类型可以使用“DBSyncStatusDownloading”位来指示文件系统是否当前在从在线存储系统102下载到电子设备202(例如,下载状态)以及使用“DBSyncStatusUploading”位来指示文件系统是否当前在从电子设备202上载到在线存储系统102(例如,上载状态)。“DBSyncStatus”也可以包括“DBSyncStatusSyncing”位来指定用于文件系统的元数据220-222的同步是否在发生(例如,元数据同步状态)以及“DBSyncStatusOnline”位来指定文件系统和/或电子设备202是否当前在线(例如,在线状态)。因此,“DBSyncStatus”可以用于提供文件系统同步状态226的一部分。
该接口也可以包括对用于同步元数据220-222的操作的方法调用。这样的方法调用可以包括对打开现有文件的打开操作的“openFile”方法调用,对创建新文件的创建操作的“createFile”方法调用,以及对创建新目录的创建操作的“createPath”方法调用。这些方法调用还可以包括对删除指定路径处的文件和/或目录的删除操作的“deletePath”方法调用,和对将文件或目录移动到指定路径的移动操作的“movePath”方法调用。由于移动操作与明确的方法调用相关联,因此API 204可以能够跟踪唯一的文件随时间变化的位置和移动。另一方面,用于访问在线存储系统102的客户端应用可能没有能力执行这样的跟踪,因为客户端应用通过从一个位置删除文件或目录以及在另一位置创建文件或目录来执行移动操作。
该接口可以使用一组属性来指定文件系统同步状态226的其它部分,包括指示上述元数据220-222的第一同步的完成(例如,就绪状态)的“completedFirstSync”属性以及指示文件系统是否在运行(例如,运行状态)的“running”属性。该接口还可以包括提供与“DBSyncStatus”相关联的状态的“status”属性。
最终,该接口可以提供与文件系统中的路径、目录和/或文件相关联的一个或多个改变状态。具体地,该接口可以包括使得能够通知对文件系统中的具体路径的改变的“forPath”改变状态。该接口还可以包括使能对路径以及直接位于路径之下的文件和/或目录的改变的通知的“forPathAndChildren”改变状态和/或使能对路径和位于路径下的某处的所有文件和/或文件夹的改变的通知的“forPathAndDescendants”改变状态。
应用210和/或同步装置206可以使用由同步状态224和文件系统同步状态226提供的信息来同步数据216-218。例如,如果同步状态224包括已缓存状态,则同步装置206可以从缓存212访问数据218。如果同步状态224不包括已缓存状态,则同步装置206可以从在线存储系统102访问数据216。如果数据216-218的更新的版本可用,则同步装置206可以从缓存212和/或在线存储系统102访问更新的版本。最终,如果数据216-218不可用,则同步装置206可以指示错误状态。
换而言之,应用210可以使用单个API 204来访问电子设备202上的本地存储装置(例如,缓存212)和在线存储系统102两者。并且,同步状态224和文件系统同步状态226可以暴露与数据216-218和元数据220-222的同步有关的信息,其允许应用210管理数据216-218和元数据220-222的改变、数据216-218的更新的版本和/或与同步相关联的错误。换而言之,API 204可以提高在应用210和在线存储系统102之间同步数据216-218和/或元数据220-222的效率、容易度和/或效果。
本领域技术人员将明白,图2的系统可以以各种方式实现。如上所述,在线存储系统102可以利用许多存储机制和/或文件系统架构来存储数据216和/或元数据220。类似地,同步装置206和通信装置208可以由各种组件和/或设备来提供。例如,同步装置206和/或通信装置208可以使用电子设备202上的库、在线存储系统102,和/或充当电子设备202和在线存储系统102之间的中间者的设备(例如,服务器)来实现。并且,应用210与API 204之间的交互可以通过各种编程语言、数据类型和结构、操作、状态和/或调用来使能。
图3示出图示出根据所公开的实施例的管理对与在线存储系统相关联的数据的访问的过程的流程图。在一个或多个实施例中,这些步骤中的一个或多个步骤可以被省略、被重复和/或以不同的顺序被执行。因此,图3中示出的步骤的具体排列不应当理解成对本技术的范围的限制。
一开始,通过API利用电子设备上的应用使能电子设备与在线存储系统之间的数据的同步(操作302)。API可以包括该应用可以调用来执行与这样的数据同步有关的操作的一组方法和/或功能调用。
API还用于向应用提供数据的同步状态(操作304)。同步状态可以描述在线存储系统上的数据与电子设备上的缓存中的数据的拷贝之间的同步。例如,同步状态可以包括下载状态、上载状态、空闲状态、传输进展、已缓存状态和/或错误状态。同步状态随后可以用于在数据的同步期间访问数据,如以下关于图4更详细描述的。
接着,通过API利用电子设备使能包含该数据的文件系统的元数据的同步(操作306)。元数据的同步可以使用打开操作、创建操作、删除操作和/或移动操作来使能。
最终,API用来向应用提供文件系统的文件系统同步状态(操作308)。文件系统同步状态可以包括元数据同步状态、在线状态、运行状态、就绪状态和/或改变状态。另外,改变状态可以与文件系统中的路径、目录和/或文件相关联。同步状态和/或文件系统同步状态可以使能用于该应用的元数据和数据两者的鲁棒同步,这进而改进了了应用对在线存储系统的使用。
图4示出图示根据所公开的实施例在电子设备和在线存储系统之间的数据的同步期间访问数据的过程的流程图。在一个或多个实施例中,这些步骤中的一个或多个可以被省略、被重复和/或以不同顺序被执行。因此,图4中示出的步骤的具体排列不应当理解成对本技术的范围的限制。
首先,对数据的访问可以基于数据的同步状态中包括已缓存状态(操作402)。已缓存状态可以指示电子设备的本地缓存上的数据的存在。同步状态中包括已缓存状态会因此导致从缓存访问数据(操作404),而同步状态中不包括已缓存状态会要求从在线存储系统访问数据(操作406)。
从在线存储系统访问数据可以进一步基于数据的可用性(操作408)。例如,如果在线存储系统不可用和/或电子设备没有与在线存储系统的网络连接,则数据会不可用。如果数据不可用,则错误状态被指示(操作414)来促进对错误状态的处理和/或对数据的后续访问。如果数据不可用,则错误状态不被指示。
数据的更新的版本也可以从缓存和/或在线存储系统获得(操作410)。如果更新的版本不可用(例如,不存在,不可访问等等),则数据的现有版本被访问。
如果更新的版本可用,则更新的版本被访问(操作412)。例如,来自缓存和/或在线存储系统的数据的现有版本可以继续使用操作404-406被访问同时更新的版本被配置用于访问(例如,下载)。一旦该更新的版本准备就绪被访问,则现有版本被更新的版本替换。
图5示出根据所公开的实施例的计算机系统500。计算机系统500可以对应于包括处理器502、存储器504、存储装置506和/或在电子计算设备中找到的其它组件的装置。处理器502可以支持与计算机系统500中的其它处理器的并行处理和/或多线程操作。计算机系统500还可以包括输入/输出(I/O)设备,诸如键盘508、鼠标510和显示器512。
计算机系统500可以包括用于执行本实施例的各种组件的功能性。具体地,计算机系统500可以包括协调计算机系统500上的硬件和软件资源的使用以及为用户执行特殊任务的一个或多个应用的操作系统(未示出)。为了为用户执行任务,应用可以从操作系统获取对计算机系统500上的硬件资源的使用,以及通过由操作系统提供的硬件和/或软件架构与用户交互。
在一个或多个实施例中,计算机系统500提供用于管理对与在线存储系统相关联的数据的访问的系统。该系统可以包括同步装置,其通过API利用电子设备上的应用使能电子设备和在线存储系统之间的数据的同步。该系统还可以包括通信装置,其使用API来向应用提供数据的同步状态。同步状态可以包括下载状态、上载状态、空闲状态、传输进展、已缓存状态和/或错误状态。
同步装置还可以通过API利用电子设备使能用于包含数据的文件系统的元数据的同步,并且通信装置可以使用API来向应用提供文件系统的文件系统同步状态。文件系统同步状态可以包括元数据同步状态、在线状态、运行状态、就绪状态和/或改变状态。
另外,计算机系统500的一个或多个组件可以位于远程并且经由网络连接到其它组件。本实施例的多个部分(例如,通信装置,同步装置等)也可以位于实现这些实施例的分布式系统的不同节点上。例如,本实施例可以使用云计算系统实现,云计算系统提供用于同步一组远程电子设备和与该云计算系统相关联的存储装置机制之间的数据的API。
以下是更多实施例的列表。
1、一种用于管理对与在线存储系统相关联的数据的访问的计算机实现的方法,包括:
利用电子设备上的应用通过应用编程接口(API)使能电子设备与在线存储系统之间的数据的同步;以及
使用API向应用提供数据的同步状态,其中,同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。
2、如权利要求1所述的计算机实现的方法,还包括:
使用API向应用提供包括所述数据的文件系统的文件系统同步状态,其中,文件系统同步状态包括以下至少一者:元数据同步状态、在线状态、运行状态、就绪状态和改变状态。
3、如权利要求2所述的计算机实现的方法,还包括:
通过API利用电子设备使能用于文件系统的元数据的同步。
4、如权利要求3所述的计算机实现的方法,其中,使用打开操作、创建操作、删除操作和移动操作中的至少一者来使能利用电子设备的用于文件系统的元数据的同步。
5、如权利要求2所述的计算机实现的方法,其中所述改变状态与路径、目录和文件中的至少一者相关联。
6、如权利要求1所述的计算机实现的方法,其中,如果该方法在电子设备和在线存储系统之间的数据的同步期间访问数据,则访问数据包括:
如果同步状态包括已缓存状态,则从电子设备上的缓存访问所述数据:
如果同步状态不包括已缓存状态,则从在线存储系统访问所述数据;
如果所述数据的更新的版本可用,则访问所述更新的版本;以及
如果所述数据不可用,则指示错误状态。
7、如权利要求1所述的计算机实现的方法,其中,同步状态指定在线存储系统上的数据与电子设备上的缓存中所述数据的拷贝之间的同步。
8、一种用于管理对与在线存储系统相关联的数据的访问的系统,包括:
同步装置,其被配置为利用电子设备上的应用通过应用编程接口(API)来使能电子设备和在线存储系统之间的数据的同步;以及
通信装置,其被配置为使用API向应用提供所述数据的同步状态,其中,同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。
9、如权利要求8所述的系统,其中,通信装置还被配置为:
使用API向应用提供包括所述数据的文件系统的文件系统同步状态,其中,文件系统同步状态包括以下至少一者:元数据同步状态、在线状态、运行状态、就绪状态和改变状态。
10、如权利要求9所述的系统,其中,同步装置还被配置为:
通过API利用电子设备使能用于文件系统的元数据的同步。
11、如权利要求10所述的系统,其中,使用打开操作、创建操作、删除操作和移动操作中的至少一者来使能利用电子设备的用于文件系统的元数据的同步。
12、如权利要求9所述的系统,其中所述改变状态与路径、目录和文件中的至少一者相关联。
13、如权利要求8所述的系统,如果同步装置在电子设备和在线存储系统之间的数据的同步期间访问数据,则访问数据包括:
如果同步状态包括已缓存状态,则从电子设备上的缓存访问所述数据:
如果同步状态不包括已缓存状态,则从在线存储系统访问所述数据;
如果所述数据的更新的版本可用,则访问所述更新的版本;以及
如果所述数据不可用,则指示错误状态。
14、如权利要求8所述的系统,其中,同步状态指定在线存储系统上的数据与电子设备上的缓存中所述数据的拷贝之间的同步。
15、一种存储指令的计算机可读存储介质,所述指令当被计算机执行时使得计算机执行一种用于管理对与在线存储系统相关联的数据的访问的计算机实现的方法,该方法包括:
利用电子设备上的应用通过应用编程接口(API)使能电子设备与在线存储系统之间的数据的同步;以及
使用API向应用提供数据的同步状态,其中,同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。
16、如权利要求15所述的计算机可读存储介质,该方法还包括:
使用API向应用提供包括所述数据的文件系统的文件系统同步状态,其中,文件系统同步状态包括以下至少一者:元数据同步状态、在线状态、运行状态、就绪状态和改变状态。
17、如权利要求16所述的计算机可读存储介质,该方法还包括:
通过API利用电子设备使能用于文件系统的元数据的同步。
18、如权利要求17所述的计算机可读存储介质,其中,使用打开操作、创建操作、删除操作和移动操作中的至少一者来使能利用电子设备的用于文件系统的元数据的同步。
19、如权利要求16所述的计算机可读存储介质,其中所述改变状态与路径、目录和文件中的至少一者相关联。
20、如权利要求15所述的计算机可读存储介质,其中,如果该方法在电子设备和在线存储系统之间的数据的同步期间访问数据,则访问数据包括:
如果同步状态包括已缓存状态,则从电子设备上的缓存访问所述数据:
如果同步状态不包括已缓存状态,则从在线存储系统访问所述数据;
如果所述数据的更新的版本可用,则访问所述更新的版本;以及
如果所述数据不可用,则指示错误状态。
尽管已经描述了以上实施例作为示例,但是本领域技术人员可以想到其它实施例和修改例。例如,在其它实施例中,本发明可以实现为用于管理与在线存储系统相关联的数据的访问的装置。
该装置可以包括用于利用电子设备上的应用通过应用编程接口(API)来使能电子设备和在线存储系统之间的数据的同步的部件;以及用于使用API来向应用提供数据的同步状态的部件,其中同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。
在一个实施例中,本发明可以实现为用于与在线存储系统同步数据的电子设备。
电子设备可以包括同步装置、通信装置和缓存。
同步装置被配置为利用被配置为访问与在线存储系统相关联的数据的电子设备上安装的应用通过应用编程接口(API)来使能电子设备和在线存储系统之间的数据的同步。通信装置被配置为使用API向应用提供数据的同步状态,其中同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。缓存被配置为缓存在线存储系统上的数据的拷贝。
为了清楚起见,在一些情况下,本技术可以表示为包括可以用硬件、软件或硬件和软件的组合实现的各个功能块。
各种实施例的以上描述仅仅是为了说明和描述的目的介绍的。它们并不旨在是穷尽性的或要将本发明限制于所公开的形式。因此,许多修改例和变更例对于本领域技术人员将是显而易见的。另外,以上公开不旨在限制本发明。

Claims (21)

1.一种用于管理对与在线存储系统相关联的数据的访问的计算机实现的方法,包括:
利用电子设备上的应用通过应用编程接口(API)使能电子设备与在线存储系统之间的数据的同步;以及
使用API向应用提供数据的同步状态,其中,同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。
2.如权利要求1所述的计算机实现的方法,还包括:
使用API向应用提供包括所述数据的文件系统的文件系统同步状态,其中,文件系统同步状态包括以下至少一者:元数据同步状态、在线状态、运行状态、就绪状态和改变状态。
3.如权利要求2所述的计算机实现的方法,还包括:
通过API利用电子设备使能用于文件系统的元数据的同步。
4.如权利要求3所述的计算机实现的方法,其中,使用打开操作、创建操作、删除操作和移动操作中的至少一者来使能利用电子设备的用于文件系统的元数据的同步。
5.如权利要求2所述的计算机实现的方法,其中所述改变状态与路径、目录和文件中的至少一者相关联。
6.如权利要求1所述的计算机实现的方法,其中,如果该方法在电子设备和在线存储系统之间的数据的同步期间访问数据,则访问数据包括:
如果同步状态包括已缓存状态,则从电子设备上的缓存访问所述数据:
如果同步状态不包括已缓存状态,则从在线存储系统访问所述数据;
如果所述数据的更新的版本可用,则访问所述更新的版本;以及
如果所述数据不可用,则指示错误状态。
7.如权利要求1所述的计算机实现的方法,其中,同步状态指定在线存储系统上的数据与电子设备上的缓存中所述数据的拷贝之间的同步。
8.一种用于管理对与在线存储系统相关联的数据的访问的系统,包括:
同步装置,其被配置为利用电子设备上的应用通过应用编程接口(API)来使能电子设备和在线存储系统之间的数据的同步;以及
通信装置,其被配置为使用API向应用提供所述数据的同步状态,其中,同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态。
9.如权利要求8所述的系统,其中,通信装置还被配置为:
使用API向应用提供包括所述数据的文件系统的文件系统同步状态,其中,文件系统同步状态包括以下至少一者:元数据同步状态、在线状态、运行状态、就绪状态和改变状态。
10.如权利要求9所述的系统,其中,同步装置还被配置为:
通过API利用电子设备使能用于文件系统的元数据的同步。
11.如权利要求10所述的系统,其中,使用打开操作、创建操作、删除操作和移动操作中的至少一者来使能利用电子设备的用于文件系统的元数据的同步。
12.如权利要求9所述的系统,其中所述改变状态与路径、目录和文件中的至少一者相关联。
13.如权利要求8所述的系统,其中,如果同步装置在电子设备和在线存储系统之间的数据的同步期间访问数据,则访问数据包括:
如果同步状态包括已缓存状态,则从电子设备上的缓存访问所述数据:
如果同步状态不包括已缓存状态,则从在线存储系统访问所述数据;
如果所述数据的更新的版本可用,则访问所述更新的版本;以及
如果所述数据不可用,则指示错误状态。
14.如权利要求8所述的系统,其中,同步状态指定在线存储系统上的数据与电子设备上的缓存中所述数据的拷贝之间的同步。
15.一种用于与在线存储系统同步数据的电子设备,包括:
同步装置,其被配置为利用被配置为访问与在线存储系统相关联的数据的电子设备上安装的应用通过应用编程接口(API)使能电子设备和在线存储系统之间的数据的同步;
通信装置,其被配置为使用API向应用提供数据的同步状态,其中,同步状态包括以下至少一者:下载状态、上载状态、空闲状态、传输进展、已缓存状态和错误状态;以及
缓存,其被配置为缓存在线存储系统上的所述数据的拷贝。
16.如权利要求15所述的电子设备,其中,同步状态指定在线存储系统上的数据与缓存中所述数据的拷贝之间的同步。
17.如权利要求15所述的电子设备,其中,通信装置还被配置为:
使用API向应用提供包括所述数据的文件系统的文件系统同步状态,其中,文件系统同步状态包括以下至少一者:元数据同步状态、在线状态、运行状态、就绪状态和改变状态。
18.如权利要求17所述的电子设备,其中,同步装置还被配置为:
通过API利用电子设备使能用于文件系统的元数据的同步。
19.如权利要求18所述的电子设备,其中,使用打开操作、创建操作、删除操作和移动操作中的至少一者来使能利用电子设备的用于文件系统的元数据的同步。
20.如权利要求17所述的电子设备,其中所述改变状态与路径、目录和文件中的至少一者相关联。
21.如权利要求15所述的电子设备,其中,如果同步装置在电子设备和在线存储系统之间的数据的同步期间访问数据,则访问数据包括:
如果同步状态包括已缓存状态,则从电子设备上的缓存访问所述数据:
如果同步状态不包括已缓存状态,则从在线存储系统访问所述数据;
如果所述数据的更新的版本可用,则访问所述更新的版本;以及
如果所述数据不可用,则指示错误状态。
CN201380066744.7A 2012-12-19 2013-08-07 用于与在线存储系统的数据同步的应用编程接口 Active CN104919451B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261739621P 2012-12-19 2012-12-19
US61/739,621 2012-12-19
US13/764,297 US9298391B2 (en) 2012-12-19 2013-02-11 Application programming interfaces for data synchronization with online storage systems
US13/764,297 2013-02-11
PCT/US2013/053995 WO2014099044A1 (en) 2012-12-19 2013-08-07 Application programming interfaces for data synchronization with online storage systems

Publications (2)

Publication Number Publication Date
CN104919451A true CN104919451A (zh) 2015-09-16
CN104919451B CN104919451B (zh) 2018-06-19

Family

ID=50932378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380066744.7A Active CN104919451B (zh) 2012-12-19 2013-08-07 用于与在线存储系统的数据同步的应用编程接口

Country Status (6)

Country Link
US (1) US9298391B2 (zh)
EP (1) EP2936342B1 (zh)
JP (1) JP6309969B2 (zh)
CN (1) CN104919451B (zh)
AU (1) AU2013364255B2 (zh)
WO (1) WO2014099044A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109478159A (zh) * 2016-07-14 2019-03-15 微软技术许可有限责任公司 损坏数据块的在线修复
CN109478152A (zh) * 2016-07-18 2019-03-15 微软技术许可有限责任公司 云内容状态框架
CN109478180A (zh) * 2016-07-22 2019-03-15 微软技术许可有限责任公司 云内容状态确定逻辑
CN110990360A (zh) * 2019-12-04 2020-04-10 深圳市迅雷网络技术有限公司 基于网络存储设备的文件同步方法及相关组件

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140279901A1 (en) * 2013-03-12 2014-09-18 Nec Laboratories America, Inc. Mobile Data Synchronization
US20160085920A1 (en) * 2013-05-31 2016-03-24 Koninklijke Philips N.V. System and method for transferring a group of related files as one logical unit
US9930132B2 (en) * 2014-01-10 2018-03-27 Facebook, Inc. Content specific router caching
CN103873567B (zh) * 2014-03-03 2018-09-04 北京智谷睿拓技术服务有限公司 基于任务的数据传输方法及数据传输装置
US9946727B2 (en) * 2014-06-18 2018-04-17 International Business Machines Corporation Synchronizing user states across multiple clients of a NAS system
US10291735B2 (en) 2014-07-23 2019-05-14 Facebook, Inc. Residential cache appliance utilizing a social network
US10397357B2 (en) 2014-07-23 2019-08-27 Facebook, Inc. Rural area network device
JP6247612B2 (ja) * 2014-08-12 2017-12-13 株式会社Nttドコモ データ復元装置及びデータ復元方法
WO2016033052A1 (en) 2014-08-26 2016-03-03 Ctera Networks, Ltd. Method and system for routing data flows in a cloud storage system
US10496676B2 (en) * 2014-08-29 2019-12-03 Netapp Inc. Synchronization cache seeding
US9930391B1 (en) * 2014-09-11 2018-03-27 Harmonic, Inc. Network personal video recorder utilizing personal digital storage
US20160188468A1 (en) * 2014-12-26 2016-06-30 Intel Corporation Implementation of data coherence among devices
US10205797B2 (en) 2014-12-29 2019-02-12 Facebook, Inc. Application service delivery through an application service avatar
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9479567B1 (en) 2015-10-29 2016-10-25 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10318490B2 (en) * 2016-10-26 2019-06-11 Adobe Inc. Synchronizing linked assets from unsynchronized file folders
US10878040B2 (en) * 2017-05-19 2020-12-29 Adobe Inc. Request-driven file pulling from unsynchronized directories
US10467424B2 (en) * 2017-10-12 2019-11-05 International Business Machines Corporation File system content based security
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033656A1 (en) * 2003-08-05 2005-02-10 International Business Machines Corporation Collaboration system suitable for on-line shopping
US20060253501A1 (en) * 2005-05-09 2006-11-09 Microsoft Corporation Fast and reliable synchronization of file system directories
CN102360410A (zh) * 2011-09-30 2012-02-22 许式伟 文件系统的用户操作发现方法和应用该方法的同步系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348597A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd キャッシュ制御方法および回転形記憶装置
EA200000004A1 (ru) * 1997-06-09 2000-10-30 Кэшфлоу, Инк. Механизм кэша объектов сети
US6453390B1 (en) * 1999-12-10 2002-09-17 International Business Machines Corporation Processor cycle time independent pipeline cache and method for pipelining data from a cache
US7689598B2 (en) * 2001-02-15 2010-03-30 International Business Machines Corporation Method and system for file system synchronization between a central site and a plurality of remote sites
US7389309B2 (en) 2003-02-28 2008-06-17 Microsoft Corporation Method for managing file replication in applications
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
AU2004271525B2 (en) * 2003-08-21 2010-01-21 Microsoft Technology Licensing, Llc Systems and methods for providing synchronization services for units of information manageable by a hardware/software interface system
US7650432B2 (en) 2004-05-20 2010-01-19 Bea Systems, Inc. Occasionally-connected application server
CA2484694A1 (en) 2004-10-14 2006-04-14 Alcatel Database ram cache
WO2011031130A1 (en) 2009-09-08 2011-03-17 Emanual System Sdn Bhd System and method of implementing a data management system
US8595440B2 (en) * 2010-03-31 2013-11-26 Hitachi Solutions, Ltd. File server apparatus, management method of storage system, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033656A1 (en) * 2003-08-05 2005-02-10 International Business Machines Corporation Collaboration system suitable for on-line shopping
US20060253501A1 (en) * 2005-05-09 2006-11-09 Microsoft Corporation Fast and reliable synchronization of file system directories
CN102360410A (zh) * 2011-09-30 2012-02-22 许式伟 文件系统的用户操作发现方法和应用该方法的同步系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴超龙: ""在线云存储系统的设计与应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109478159A (zh) * 2016-07-14 2019-03-15 微软技术许可有限责任公司 损坏数据块的在线修复
CN109478159B (zh) * 2016-07-14 2021-12-03 微软技术许可有限责任公司 损坏数据块的在线修复
CN109478152A (zh) * 2016-07-18 2019-03-15 微软技术许可有限责任公司 云内容状态框架
CN109478180A (zh) * 2016-07-22 2019-03-15 微软技术许可有限责任公司 云内容状态确定逻辑
CN109478180B (zh) * 2016-07-22 2022-05-13 微软技术许可有限责任公司 云内容状态确定逻辑
CN110990360A (zh) * 2019-12-04 2020-04-10 深圳市迅雷网络技术有限公司 基于网络存储设备的文件同步方法及相关组件

Also Published As

Publication number Publication date
AU2013364255A1 (en) 2015-07-02
CN104919451B (zh) 2018-06-19
JP2016505964A (ja) 2016-02-25
EP2936342A1 (en) 2015-10-28
AU2013364255B2 (en) 2017-04-06
JP6309969B2 (ja) 2018-04-11
WO2014099044A1 (en) 2014-06-26
US9298391B2 (en) 2016-03-29
EP2936342B1 (en) 2018-07-18
US20140173230A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
CN104919451A (zh) 用于与在线存储系统的数据同步的应用编程接口
US11615059B2 (en) Smart archiving and data previewing for mobile devices
US20220138148A1 (en) Data previewing before recalling large data files
US20210185122A1 (en) Synchronized content library
US9424136B1 (en) Systems and methods for creating optimized synthetic backup images
CN104731691B (zh) 动态调整分布式文件系统内文件副本数目的方法和系统
CN100449500C (zh) 用于确定对源文件作出的改变以便传输到目标位置的方法和系统
US20170195402A1 (en) Sharing a content item
JP6588112B2 (ja) デバイスを無線接続する方法、コンピュータプログラムおよびシステム
US9256612B1 (en) Systems and methods for managing references in deduplicating data systems
US8627033B2 (en) Storage device migration and redirection
US11645237B2 (en) Replicating data utilizing a virtual file system and cloud storage
CN108369487B (zh) 用于在去重虚拟文件系统中拍摄快照的系统和方法
CN101090356A (zh) 使能对远程存储装置的访问的方法和系统
CN102323930B (zh) 对数据库系统中的数据变更进行镜像
US20150227605A1 (en) Information processing terminal, synchronization control method, and computer-readable recording medium
CN102804202A (zh) 内容网格搜索
CN102402469A (zh) 条目级恢复
US9063909B2 (en) Isolating data storage mirroring operations
JP6967010B2 (ja) 異種ストレージシステム間の複製
US12026132B2 (en) Storage tiering for computing system snapshots
US8266110B1 (en) Integrated archival and backup
US20150172263A1 (en) Limited-functionality accounts
US10869089B1 (en) Systems and methods for preventing display of blocked content

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant