IP Library Granted Patent US 11,604,769
Granted Patent B2
US 11,604,769 · App. 17/133,006 · Granted Mar 14, 2023

Synchronizing an external location

Inventors: Sourabh Yerfule (Sunnyvale, CA); Parker Timmerman (Jersey City, NJ); Adam Arbree (Fairfax, CA); Pranav Vishnu Ramabhadran (San Francisco, CA); Zihao Yang (San Francisco, CA); Lisa Fan (San Francisco, CA); Kelson Reiss (San Francisco, CA); Geoffry Song (San Francisco, CA); Nipunn Koorapati (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F16/178G06F3/0482G06F16/168G06F16/27H04L67/1095H04L67/1097
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,604,769
App. No.
17/133,006
Granted
Mar 14, 2023
Kind
B2
Abstract

The present technology pertains to synchronizing contents of a directory external to a synchronized directory by a content management system. The content management system is configured to synchronize only objects in the synchronized directory. Accordingly, the present technology creates an anchor object that represents the directory external to the synchronized directory within the synchronized directory. The anchor object includes special attributes that indicate to the synchronization client that the anchor object represents an external directory, and allows the contents of that directory to be synchronized directly to a server on the content management system without first storing the contents of the external directory on the hard drive of the client device.

Claims (48)

1. A method comprising:

receiving a communication to synchronize an anchor object by a content management system from a first client device, wherein the anchor object is an object with attributes that causes the content management system to recognize the anchor object as pointing to an external directory reachable by the first client device, wherein the external directory is external to a directory on the first client device that contains the anchor object;

representing the anchor object as a folder within the directory that contains the anchor object on a web server of the content management system, wherein child objects of the anchor object are represented as being in a path subordinate to the anchor object; and

synchronizing the anchor object on first client device, wherein the anchor object is represented as a link placeholder on a file system of the first client device.

2. The method of claim 1 , wherein the anchor object and the child objects are browseable and viewable on the web server of the content management system.

3. The method of claim 1 , comprising:

synchronizing the anchor object to a second client device, wherein the anchor object is represented as a second link placeholder on a second file system of the second client device, wherein the external directory is not reachable by the second client device.

4. The method of claim 3 , wherein, upon being selected at the second client device, the link placeholder is configured to cause the second client device to direct a web browser to the web server of the content management system.

5. The method of claim 1 , wherein the anchor object and the child objects are configured for uni-directional synchronization.

6. The method of claim 1 , comprising:

receiving a selection of a child object in the path of the anchor object via the web server of the content management system; and

providing a warning that the child object is configured for uni-directional synchronization.

7. The method of claim 1 , comprising:

receiving an edit to a child object via the web server of the content management system;

determining that the child object is configured for uni-directional synchronization;

providing a warning that the child object is configured for uni-directional synchronization; and

receiving an input confirming that a user account would like to synchronize the edit.

8. The method of claim 7 , comprising:

creating a copy of the child object containing the edit; and

synchronizing the copy of the child object into a directory that supports bi-directional synchronization, the directory being different than the external directory.

9. The method of claim 7 , wherein the determining that the child object is configured for uni-directional synchronization comprises:

determining that the child object is a child object of the anchor object.

10. The method of claim 7 , wherein the determining that the child object is configured for uni-directional synchronization comprising:

determining that the child object is associated with an attribute indicating that the object is configured for uni-directional synchronization.

11. A non-transitory computer readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to:

generate an anchor object, wherein the anchor object is an object with attributes that causes a client application of a content management system to recognize the anchor object as pointing to an external directory reachable by a first client device, wherein the external directory is external to a directory on the first client device that contains the anchor object;

represent the anchor object as a folder within the directory that contains the anchor object on the first client device, wherein child objects of the anchor object are represented as being in a path subordinate to the anchor object and the anchor object is represented as a link placeholder on a file system of the first client device; and

synchronize at least one object on the external directory to the content management system.

12. The computer readable medium of claim 11 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to:

recognize the anchor object by the client application, wherein the anchor object is recognized by a presence of the attributes; and

read contents of the external directory.

13. The computer readable medium of claim 12 , wherein the directory that stores the anchor object is a synchronized directory that is synchronized to the content management system by the client application.

14. The computer readable medium of claim 13 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to:

store a representation of the synchronized directory in a local tree structure that represents a file system structure of objects in the synchronized directory, including the anchor object, wherein the anchor object is represented in the local tree structure as the folder with a flag as part of the attributes to indicate that it is the anchor object.

15. The computer readable medium of claim 14 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to:

read the attributes of the anchor object; and

create an in-memory map based on the attributes to convert between a device universally unique identifier (UUID) of the external directory to a content management system path in the local tree structure.

16. The computer readable medium of claim 15 , wherein the attributes serve as a source of truth for an identification of the external object and a location of the external object.

17. A system comprising:

at least one storage configured to store instructions;

at least one processor configured to execute the instructions and cause the at least one processor to:

receive a communication to synchronize an anchor object by a content management system from a first client device, wherein the anchor object is an object with attributes that causes the content management system to recognize the anchor object as pointing to an external directory reachable by the first client device and wherein the external directory is external to a directory on the first client device that contains the anchor object;

represent the anchor object as a folder within the directory that contains the anchor object on a web server of the content management system, wherein child objects of the anchor object are represented as being in a path subordinate to the anchor object; and

synchronize the anchor object on the first client device, wherein the anchor object is represented as a link placeholder on a file system of the first client device.

18. The system of claim 17 , wherein the anchor object and the child objects are browseable and viewable on the web server of the content management system.

19. The system of claim 17 , wherein the instructions further cause the at least one processor to:

synchronize the anchor object to a second client device, the anchor object is represented as a second link placeholder on a second file system of the second client device, and the external directory is not reachable by the second client device.

20. The system of claim 19 , wherein upon being selected at the second client device, the link placeholder is configured to cause the second client device to direct a second web browser to the web server of the content management system.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2020
From: YERFULE, SOURABH; TIMMERMAN, PARKER; ARBREE, ADAM; RAMABHADRAN, PRANAV VISHNU; YANG, ZIHAO; FAN, LISA; REISS, KELSON; SONG, GEOFFRY; KOORAPATI, NIPUNN
To: DROPBOX, INC
Reel/Frame 054742/0633 →
Continuity (2)
Provisional Application 63093699 · Oct 19, 2020
Related Publication 20220121680A1 · Apr 21, 2022