IP Library Granted Patent US 11,500,897
Granted Patent B2
US 11,500,897 · App. 16/833,348 · Granted Nov 15, 2022

Allocation and reassignment of unique identifiers for synchronization of content items

Inventors: Isaac Goldberg (San Francisco, CA); John Lai (San Francisco, CA); Sujay Jayakar (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/01H04L67/306
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,500,897
App. No.
16/833,348
Granted
Nov 15, 2022
Kind
B2
Abstract

A client can allocate and reassociate unique identifiers to local content items associated with an account at a content management system, and use the unique identifiers to commit operations for the content items on the content management system. For example, a client can create a content item and determine the content item does not have an identifier from the content management system. The client obtains an identifier for the content item and asks the content management system to verify a uniqueness of the identifier. When the identifier is unique, the client adds a node corresponding to the content item to a local tree representing a state at the client of content items associated with the account, and uploads the content item with the identifier to the content management system. When the identifier is not unique, the client obtains a new identifier for the content item.

Claims (63)

1. A method comprising:

adding a first content item on a client device, the first content item being associated with a user account at a content management system;

determining the first content item does not have a first unique identifier from the content management system;

comparing metadata between the first content item and a second content item to determine that the first content item and the second content item are associated with one another to allow the first content item to inherit a second unique identifier associated with the second content item;

in response to the determination that the first content item and the second content item are associated with one another to allow the first content item to inherit the second unique identifier associated with the second content item, assigning the second unique identifier to the first content item;

sending, to the content management system, a request to verify a uniqueness of the second unique identifier at the content management system;

after sending the request to verify the uniqueness of the second unique identifier, adding a node representing the first content item to a local tree at the client device, the node identifying the first content item based on the second unique identifier and the local tree representing a local state of content items at the client device;

based on a response to the request, determining whether the second unique identifier is verifiably unique at the content management system, wherein the request to verify includes a block or blocklist associated with the second content item, or a hash of at least a portion of the second content item; and

uploading the first content item with the second unique identifier to the content management system.

2. The method of claim 1 , further comprising:

in response to determining that the second unique identifier is not verifiably unique, stripping the second content item of the second unique identifier; and

obtaining a third unique identifier for the second content item from the content management system.

3. The method of claim 1 , wherein the first unique identifier and the second unique identifier are written as metadata for the first content item.

4. The method of claim 1 , wherein assigning the second unique identifier to the first content item comprises reassigning the second unique identifier from the second content item.

5. The method of claim 4 , wherein reassigning the second unique identifier to the first content item comprises extracting the second unique identifier from the second content item and appending the second unique identifier to the first content item as an extended attribute.

6. The method of claim 1 , wherein the second unique identifier comprises a respective unique identifier generated by the content management system and assigned to the second content item by the content management system.

7. The method of claim 1 , wherein assigning the second unique identifier to the first content item comprises writing the second unique identifier to the first content item as an extended attribute of the first content item.

8. The method of claim 1 , wherein determining to allow the first content item to inherit the second unique identifier from the second content item comprises:

identifying a first path associated with the first content item;

determining a previous path associated with the second content item matches the first path associated with the first content item;

determining the first content item comprises a version of the second content item being resurrected or moved to the first path associated with the first content item; and

based on determining the first content item comprises the version of the second content item, determining to allow the first content item to inherit the second unique identifier from the second content item.

9. A non-transitory computer readable medium comprising instructions, the instructions, when executed by one or more processors, cause a client device to:

add a first content item on the client device, the first content item being associated with a user account at a content management system;

determine the first content item does not have a first unique identifier from the content management system;

compare metadata between the first content item and a second content item to determine that the first content item and the second content item are associated with one another to allow the first content item to inherit a second unique identifier from the second content item;

in response to the determination that the first content item and the second content item are associated with one another to allow the first content item to inherit the second unique identifier associated with the second content item, assign the second unique identifier to the first content item;

send, to the content management system, a request to verify a uniqueness of the second unique identifier at the content management system;

after sending the request to verify the uniqueness of the second unique identifier, add a node representing the first content item to a local tree at the client device, the node identifying the first content item based on the second unique identifier and the local tree representing a local state of content items at the client device;

based on a response to the request, determine whether the second unique identifier is verifiably unique at the content management system, wherein the request to verify includes a block or blocklist associated with the second content item, or a hash of at least a portion of the second content item; and

upload the first content item with the second unique identifier to the content management system.

10. The non-transitory computer readable medium of claim 9 , comprising further instructions to cause the client device to:

in response to determining that the second unique identifier is not verifiably unique, strip the second content item of the second unique identifier; and

obtain a third unique identifier for the second content item from the content management system.

11. The non-transitory computer readable medium of claim 9 , wherein the first unique identifier and the second unique identifier are written as metadata for the first content item.

12. The non-transitory computer readable medium of claim 9 , wherein assigning the second unique identifier to the first content item comprises reassigning the second unique identifier from the second content item.

13. The non-transitory computer readable medium of claim 9 , wherein reassigning the second unique identifier to the first content item comprises extracting the second unique identifier from the second content item and appending the second unique identifier to the first content item as an extended attribute.

14. The non-transitory computer readable medium of claim 9 , wherein the second unique identifier comprises a respective unique identifier generated by the content management system and assigned to the second content item by the content management system.

15. The non-transitory computer readable medium of claim 9 , wherein assigning the second unique identifier to the first content item comprises writing the second unique identifier to the first content item as an extended attribute of the first content item.

16. The non-transitory computer readable medium of claim 9 , wherein determining to allow the first content item to inherit the second unique identifier from the second content item comprises:

identifying a first path associated with the first content item;

determining a previous path associated with the second content item matches the first path associated with the first content item;

determining the first content item comprises a version of the second content item being resurrected or moved to the first path associated with the first content item; and

based on determining the first content item comprises the version of the second content item, determining to allow the first content item to inherit the second unique identifier from the second content item.

17. A computing 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 computing device to:

add a first content item on the computing device, the first content item being associated with a user account at a content management system;

determine the first content item does not have a first unique identifier from the content management system;

compare metadata between the first content item and a second content item to determine that the first content item and the second content item are associated with one another to allow the first content item to inherit a second unique identifier from the second content item;

in response to the determination that the first content item and the second content item are associated with one another to allow the first content item to inherit the second unique identifier associated with the second content item, assign the second unique identifier to the first content item;

send, to the content management system, a request to verify a uniqueness of the second unique identifier at the content management system;

after sending the request to verify the uniqueness of the second unique identifier, add a node representing the first content item to a local tree at the computing device, the node identifying the first content item based on the second unique identifier and the local tree representing a local state of content items at the computing device;

based on a response to the request, determine whether the second unique identifier is verifiably unique at the content management system, wherein the request to verify includes a block or blocklist associated with the second content item, or a hash of at least a portion of the second content item; and

upload the first content item with the second unique identifier to the content management system.

18. The computing device of claim 17 , wherein determining to allow the first content item to inherit the second unique identifier from the second content item comprises:

identifying a first path associated with the first content item;

determining a previous path associated with the second content item matches the first path associated with the first content item;

determining the first content item comprises a version of the second content item being resurrected or moved to the first path associated with the first content item; and

based on determining the first content item comprises the version of the second content item, determining to allow the first content item to inherit the second unique identifier from the second content item.

19. The computing device of claim 17 , comprising further instructions to cause the computing device to:

in response to determining that the second unique identifier is not verifiably unique, strip the second content item of the second unique identifier; and

obtain a third unique identifier for the second content item from 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 Mar 30, 2020
From: GOLDBERG, ISAAC; LAI, JOHN; JAYAKAR, SUJAY
To: DROPBOX, INC.
Reel/Frame 052255/0400 →