IP Library Granted Patent US 10,929,427
Granted Patent B2
US 10,929,427 · App. 15/863,815 · Granted Feb 23, 2021

Selective synchronization of content items in a content management system

Inventors: Andrew Haven (San Francisco, CA); Isaac Goldberg (San Francisco, CA); Geoffry Song (San Francisco, CA); Joshua Warner (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F16/27G06F1/04G06F3/065G06F3/067G06F3/0619G06F3/0623G06F3/0629G06F3/0652G06F9/547G06F11/1469G06F12/1466G06F16/11G06F16/113G06F16/116G06F16/119G06F16/122G06F16/125G06F16/128G06F16/13G06F16/137G06F16/148G06F16/152G06F16/156G06F16/16G06F16/162G06F16/168G06F16/172G06F16/176G06F16/178G06F16/1734G06F16/1744G06F16/1767G06F16/1787G06F16/18G06F16/182G06F16/183G06F16/184G06F16/185G06F16/1827G06F16/1844G06F16/2246G06F16/2255G06F16/2322G06F16/2358G06F16/2365G06F16/2379G06F16/24552G06F16/275G06F16/907G06F16/9027G06F16/951G06F16/955G06F16/958G06F21/10G06F21/604G06F21/6218H04L9/3213H04L9/3247H04L63/08H04L63/0853H04L63/10H04L63/101H04L63/102H04L67/06H04L67/1095H04L67/1097G06F2201/84G06F2212/1052G06F2221/2141H04L67/306H04L67/42
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 10,929,427
App. No.
15/863,815
Granted
Feb 23, 2021
Kind
B2
Abstract

A system can selectively synchronize content based on synchronization settings. In some examples, a client stores a local tree representing a local set of content items associated with an account on a content management system, the local tree including respective local nodes corresponding to the local set of content items. The client stores a remote tree representing a remote set of content items associated with the account, the remote set being stored at the content management system and including respective remote nodes corresponding to the remote set of content items. The client receives a synchronization setting disabling local storage of the content item. In response, the client deletes a local copy of the content item, removes a corresponding local node from the local tree, and adds, to a remote node on the remote tree, an attribute indicating that local storage of the content item has been disabled.

Claims (74)

1. A method comprising:

storing, at a client device, a local tree data structure representing content items in a file system on the client device, the content items are associated with a user account on a content management system;

storing, at the client device, a remote tree data structure representing a remote set of content items associated with the user account, the remote set of content items being stored at the content management system;

receiving, at the client device, a synchronization setting for a content item associated with the user account, the synchronization setting disabling local storage of the content item;

in response to the synchronization setting:

deleting a local copy of the content item from the client device;

removing, from the local tree data structure, a representation of the content item in the local tree data structure; and

adding, to the remote tree data structure, a hidden attribute in association with a representation of the content item on the remote tree data structure, the hidden attribute indicating that local storage of the content item has been disabled, whereby the content item is excluded from being stored on the client device as a result of a future synchronization while the hidden attribute remains associated with the representation of the content item in the remote tree.

2. The method of claim 1 , further comprising presenting, via a graphical user interface, the content items in the file system on the client device and one or more graphical control elements for selecting respective synchronization settings for the content items in the file system on the client device.

3. The method of claim 1 , further comprising presenting, via the graphical user interface, the content items in the file system on the client device and one or more graphical control elements for selecting respective synchronization settings for the content items in the file system on the client device.

4. The method of claim 1 , further comprising:

detecting a remote change to the content item; and

in response to the remote change, updating the representation of the content item on the remote tree data structure to reflect the change, the representation of the content item on the remote tree data structure being based on a server state associated with the content item.

5. The method of claim 1 , further comprising:

detecting one or more changes to at least one of the remote tree data structure or the local tree data structure; and

based on the one or more changes, synchronizing the remote tree data structure and the local tree data structure.

6. The method of claim 5 , wherein synchronizing the remote tree data structure and the local tree data structure comprises:

identifying the representation of the content item on the remote tree data structure;

determining that the hidden attribute is associated with the representation of the content item; and

based on the hidden attribute, excluding the representation of the content item from the local tree data structure.

7. The method of claim 6 , wherein the one or more changes represent a move operation at the content management system, the move operation moving a remote copy of the content item from a first path to a second path, and wherein the one or more changes comprise moving the representation of the content item associated with the content item to a different location within the remote tree data structure, the different location corresponding to the second path.

8. The method of claim 7 , wherein moving the representation of the content item to the different location comprises storing the representation of the content item at the different location in the remote tree data structure and retaining the hidden attribute associated with the representation of the content item.

9. The method of claim 6 , further comprising:

detecting an add operation at the client device, the add operation adding a second content item on the client device, the second content item being stored at a path associated with the representation of the content item and a remote copy of the content item;

determining that synchronization of the second content item at the client device would create a conflict with the remote copy of the content item based on the path comprising a same path for both the second content item and the remote copy of the content item;

in response to determining the conflict, modifying the path of the second content item on the client device to yield a second path; and

storing the second content item on the client device at the second path.

10. The method of claim 9 , further comprising:

adding a representation of the second content item to the local tree data structure, the representation of the second content item representing the second content item and associating the second content item with the second path; and

in response to adding the representation of the second content item to the local tree data structure, synchronizing the local tree data structure and the remote tree data structure, wherein synchronizing the local tree data structure and the remote tree data structure comprises adding a representation of the second content item to the remote tree data structure corresponding to a remote copy of the second content item.

11. The method of claim 10 , wherein the representation of the second content item on the remote tree data structure associates the remote copy of the second content item with the second path.

12. A non-transitory computer readable medium comprising instructions, the instructions, when executed by a client device, cause the client device to:

store a local tree data structure representing content items in a file system on the client device, the content items associated with a user account on a content management system;

store a remote tree data structure representing a remote set of content items associated with the user account, the remote set of content items being stored at the content management system;

receive a synchronization setting for a content item associated with the user account, the synchronization setting disabling local storage of the content item;

in response to the synchronization setting: delete a local copy of the content item;

remove, from the local tree data structure, a representation of the content item on the local tree data structure; and

add, to the remote tree data structure, a hidden attribute in association with a representation of the content item in the remote tree data structure, the hidden attribute indicating that local storage of the content item has been disabled, whereby the content item is excluded from being stored on the client device as a result of a future synchronization while the hidden attribute remains associated with the representation of the content item in the remote tree.

13. The non-transitory computer readable medium of claim 12 , wherein receiving the synchronization setting comprises receiving, via a graphical user interface on the computing device, user input identifying the synchronization setting.

14. The non-transitory computer readable medium of claim 12 , storing instructions which, when executed by the client device, cause the client device to:

detect a remote change to the content item; and

in response to the remote change, update the representation of the content item on the remote tree data structure to reflect the change, the representation of the content item on the remote tree data structure being based on a server state associated with the content item.

15. The non-transitory computer readable medium of claim 12 , storing instructions which, when executed by the client device, cause the client device to:

detect one or more changes to at least one of the remote tree data structure or the local tree data structure; and

based on the one or more changes, synchronize the remote tree data structure and the local tree data structure;

wherein the one or more changes represent a move operation at the content management system, the move operation moving a remote copy of the content item from a first path to a second path, and wherein the one or more changes comprise moving the representation of the content item to a different location within the remote tree data structure, the different location corresponding to the second path.

16. The non-transitory computer readable medium of claim 15 , wherein synchronizing the remote tree data structure and the local tree data structure comprises:

identifying the representation of the content item on the remote tree data structure;

determining that the hidden attribute is associated with the representation of the content item; and

based on the hidden attribute, excluding the representation of the content item from the local tree data structure;

wherein moving the representation of the content item to the different location comprises storing the representation of the content item at the different location in the remote tree data structure and retaining the hidden attribute associated with the representation of the content item.

17. A client device comprising:

one or more processors; and

at least one non-transitory computer readable medium having stored therein instructions which, when executed by the one or more processors, cause the client device to:

store a local tree data structure representing content items in a file system on the client device, the content items associated with a user account on a content management system;

store a remote tree data structure representing a remote set of content items associated with the user account, the remote set of content items being stored at the content management system;

receive a synchronization setting for a content item associated with the user account, the synchronization setting disabling local storage of the content item;

in response to the synchronization setting:

delete a local copy of the content item;

remove, from the local tree data structure, a representation of the content item in the local tree data structure; and

add, to the remote tree data structure, a hidden attribute in association with a representation of the content item on the remote tree data structure, the hidden attribute indicating that local storage of the content item has been disabled, whereby the content item is excluded from being stored on the client device as a result of a future synchronization while the hidden attribute remains associated with the representation of the content item in the remote tree.

18. The client device of claim 17 , storing instructions which, when executed by the one or more processors, cause the client device to:

detect one or more changes to at least one of the remote tree data structure or the local tree data structure; and

based on the one or more changes, synchronize the remote tree data structure and the local tree data structure, wherein synchronizing the remote tree data structure and the local tree data structure comprises:

identifying the representation of the content item on the remote tree data structure;

determining that the hidden attribute is associated with the representation of the content item on the remote tree data structure; and

based on the hidden attribute, excluding the representation of the content item from the local tree data structure.

19. The client device of claim 18 , wherein the one or more changes represent a move operation at the content management system, the move operation moving a remote copy of the content item from a first path to a second path, and wherein the one or more changes comprise moving the representation of the content item to a different location within the remote tree data structure and retaining the hidden attribute associated with the representation of the content item, the different location corresponding to the second path.

20. The client device of claim 19 , storing instructions which, when executed by the one or more processors, cause the client device to:

detect an add operation at the client device, the add operation adding a second content item on the client device, the second content item being stored at a path associated with the representation of the content item and a remote copy of the content item;

determine that synchronization of the second content item at the client device would create a conflict with the remote copy of the content item based on the path comprising a same path for both the second content item and the remote copy of the content item;

in response to determining the conflict, modify the path of the second content item on the client device to yield a second path;

store the second content item on the client device at the second path; and

add a representation of the second content item to the local tree data structure, the representation of the second content item associates the second content item with the second path.

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 Aug 6, 2018
From: HAVEN, ANDREW; GOLDBERG, ISAAC; SONG, GEOFFRY; WARNER, JOSHUA
To: DROPBOX, INC.
Reel/Frame 046562/0193 →
Continuity (2)
Provisional Application 62611473 · Dec 28, 2017
Related Publication 20190205423A1 · Jul 4, 2019
Cited By (1)
US 12,688,157