IP Library Granted Patent US 9,501,511
Granted Patent B2
US 9,501,511 · App. 14/797,997 · Granted Nov 22, 2016

Providing a content preview

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 9,501,511
App. No.
14/797,997
Granted
Nov 22, 2016
Kind
B2
Abstract

A content preview of a content item stored in an online storage system can be viewed on a client device without the content item itself being downloaded to the client device and without the use of software associated with the content item being installed on the client device. Furthermore, data storage and processing requirements can be minimized by creating and storing only one content preview for each unique content item. The content item can be identified by using the content item as a hash key in a hashing algorithm. The resulting unique identifier can be used to search a preview index that lists all created content previews and their location. A content preview is only created if one does not exist. The unique identifier can be used to locate the content preview and return it in response to a preview request by a client device.

Claims (54)

1. A computer-implemented method comprising:

splitting, via a processor, a content item into at least a first fixed size block containing a first unique portion of the content item and a second fixed size block containing a second unique portion of the content item, in response to a preview triggering event;

computing, via the processor, a first hash identifier by using at least a part of the first unique portion of the first fixed size block as a first hash key in a hashing algorithm;

computing, via the processor, a second hash identifier by using at least a part of the second unique portion of the second fixed size block as a second hash key in the hashing algorithm;

generating, via the processor, a block list containing a hash key created by concatenating the first hash identifier and the second hash identifier; and

creating, via the processor, a content preview of the content item in response to a determination, based on the block list, that the content preview of the content item does not exist.

2. The computer-implemented method of claim 1 further comprising:

creating a new preview entry in a preview index, the preview index comprising a listing of known content previews, wherein the new preview entry comprises the block list and a location of the content preview in a memory.

3. The computer-implemented method of claim 2 further comprising:

searching the preview index for an existing preview entry matching the block list.

4. The computer-implemented method of claim 1 further comprising:

associating the block list with a content entry for the content item, the content entry including metadata describing the content item.

5. The computer-implemented method of claim 1 further comprising:

receiving, from a client device, a preview request associated with the content item;

identifying a location of the content preview; and

returning, to the client device, the content preview.

6. The computer-implemented method of claim 5 wherein the preview request includes the block list, and wherein the location of the content preview is identified by searching a preview index using the block list.

7. The computer-implemented method of claim 5 wherein the preview request includes data identifying a content entry for the content item, the content entry including the block list, and wherein the location of the content preview is identified by searching a preview index based on the block list.

8. The computer-implemented method of claim 1 wherein the hashing algorithm is referentially transparent.

9. A system, comprising:

a hardware processor; and

a memory containing instructions that, when executed, cause the hardware processor to:

split a content item into at least a first fixed size block containing a first unique portion of the content item and a second fixed size block containing a second unique portion of the content item, in response to a preview triggering event;

compute a first hash identifier by using at least a part of the first unique portion of the first fixed size block as a first hash key in a hashing algorithm;

compute a second hash identifier by using at least a part of the second unique portion of the second fixed size block as a second hash key in the hashing algorithm;

generate a block list containing a hash key created by concatenating the first hash identifier and the second hash identifier; and

create a content preview of the content item when the content preview of the content item is not found in one or more predetermined location, as determined based on the generated block list.

10. The system of claim 9 wherein the instructions further cause the processor to:

create a new preview entry in a preview index that identifies each content item for which a content preview has been created, wherein the new preview entry includes the block list and a location of the content preview in a memory.

11. The system of claim 10 wherein the instructions further cause the processor to:

searching the preview index for an existing preview entry associated with the block list.

12. The system of claim 9 wherein the instructions further cause the processor to:

associating the block list with a content entry for the content item, the content entry including metadata describing the content item.

13. The method of claim 9 wherein the instructions further cause the processor to:

receive, from a client device, a preview request associated with the content item;

identify a location of the content preview; and

return, to the client device, the content preview.

14. The system of claim 13 wherein the preview request includes the block list, and wherein the location of the content preview is identified by searching a preview index based on the block list.

15. The system of claim 13 wherein the preview request includes data identifying a content entry associated with the content item, the content entry including the block list, and wherein the location of the content preview is identified by searching a preview index based on the block list.

16. The system of claim 9 wherein the hashing algorithm returns a unique hash identifier for each unique hash key.

17. A non-transitory computer-readable medium containing instructions which, when executed by a computing device, cause the computing device to:

split a content item into at least a first fixed size block containing a first unique portion of the content item and a second fixed size block containing a second unique portion of the content item, in response to a preview triggering event;

compute, via the processor, a first hash identifier by using at least a part of the first unique portion of the first fixed size block as a first hash key in a hashing algorithm;

compute, via the processor, a second hash identifier by using at least a part of the second unique portion of the second fixed size block as a second hash key in the hashing algorithm;

generate, via the processor, a block list containing a hash key created by concatenating the first hash identifier and the second hash identifier; and

create a content preview of the content item in response to a determination, based on the block list, that the content preview of the content item does not exist in one or more locations.

18. The non-transitory computer-readable medium of claim 17 wherein the instructions further cause the computing device to:

create a new preview entry in a preview index that identifies each content item for which a content preview has been created, wherein the new preview entry includes the block list and a location of the content preview in a memory.

19. The non-transitory computer-readable medium of claim 17 wherein the instructions further cause the computing device to:

receive, from a client device, a preview request associated with the first content item;

identify a location of the content preview; and

return, to the client device, the content preview.

20. The non-transitory computer-readable medium of claim 19 wherein the preview request includes the block list, and wherein the location of the content preview is identified by searching a preview index based on the block list.

21. The non-transitory computer-readable medium of claim 19 wherein the preview request includes data identifying a content entry for the content item, the content entry identifying the block list, and wherein the location of the content preview is identified by searching a preview index based on the block list.

Assignments (5)
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →