IP Library Granted Patent US 8,812,849
Granted Patent B1
US 8,812,849 · App. 13/245,663 · Granted Aug 19, 2014

System and method for controlling the upload of data already accessible to a server

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 8,812,849
App. No.
13/245,663
Granted
Aug 19, 2014
Kind
B1
Abstract

Systems, methods, and machine-readable media for controlling an upload of a block of data associated with an upload command are described. In certain aspects, an interface module may be configured to obtain a cryptographic checksum for the block of data associated with the upload command. A checksum module may configured to compare the cryptographic checksum for the block of data associated with the upload command to a cryptographic checksum in an index storing cryptographic checksums identifying blocks of data previously uploaded to a server. If the cryptographic checksum for the block of data associated with the upload command matches the cryptographic checksum in the index, an upload module may be configured to cancel the upload of the block of data associated with the upload command.

Claims (57)

1. A computer-implemented method for controlling an upload of a block of data, the method comprising:

receiving a plurality of blocks of data of an email attachment, wherein each block in the plurality of blocks of data is of a predetermined size, the predetermined size based on capabilities of at least one of a client device, a server, or a network;

receiving a characterization for a block of data in the plurality of blocks of data;

comparing, using a processor during the receiving of the plurality of blocks of data, the characterization for the block of data to a listing of characterizations in an index storing characterizations identifying previously stored blocks of data; and

if the characterization for the block of data matches a characterization in the index:

canceling the receiving of the block of data,

identifying, using the characterization in the index, a previously stored block of data that is identical to the block of data in the plurality of blocks of data, and

attaching the previously stored block of data to an email as part of the email attachment.

2. The computer-implemented method of claim 1 , wherein a file name associated with the block of data in the plurality of blocks of data is different than a file name associated with the previously stored block of data.

3. The computer-implemented method of claim 1 , wherein the characterization in the index is associated with a reference to the previously stored block of data.

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

if the characterization for the block of data does not match any characterization in the index,

completing the receiving of the block of data,

calculating a characterization for the block of data, and

storing the characterization for the block of data with a reference to the block of data in the index.

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

if the characterization for the block of data does not match any characterization in the index,

completing the receiving of the block of data, and

storing the characterization of block of data with a reference to the uploaded block of data in the index.

6. The computer-implemented method of claim 1 , wherein the characterization identifying the block of data is generated by a web browser on a client device using an HTML5 FileReader application programming interface (API).

7. The computer-implemented method of claim 1 , wherein the plurality of blocks of data comprise a file.

8. The computer-implemented method of claim 1 , wherein the characterization is a checksum.

9. The computer-implemented method of claim 8 , wherein the checksum is a cryptographic checksum.

10. A system for controlling an upload of a block of data, the system comprising:

one or more hardware processors; and

a machine-readable medium comprising instructions stored therein, which when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising:

receiving a file comprising an email attachment;

receiving a characterization for a block of data in the file, wherein the block of data is of a predetermined size, the predetermined size based on capabilities of at least one of a client device, a server, or a network;

comparing, during the receiving of the file, the characterization for the block of data in the file to a characterization in an index storing a plurality of characterizations, each characterization of the plurality of characterizations stored in the index identifying previously stored blocks of data and each characterization being associated with a reference to the block of data; and

if the characterization for the block of data in the file matches a characterization in the index:

canceling the receiving of the block of data in the file,

identifying, using the characterization in the index, a previously stored block of data that is identical to the block of data in the file, and

attaching the previously stored block of data to an email as part of the email attachment.

11. The system of claim 10 , wherein if the characterization for the block of data in the file does not match any characterization in the index, the operations further comprise:

completing the receiving of the block of data in the file;

calculating a characterization for the block of data in the file; and

storing the characterization for the block of data in the file with a reference to the block of data in the index.

12. The system of claim 10 , wherein if the characterization for the block of data in the file does not match any characterization in the index, the operations further comprise:

completing the receiving of the block of data in the file; and

storing the characterization of block of data in the file with a reference to the block of data in the index.

13. The system of claim 10 , wherein the characterization identifying the block of data in the file is generated by a web browser on a client device using an HTML5 FileReader application programming interface (API).

14. The system of claim 10 , wherein the characterization is a checksum.

15. The system of claim 14 , wherein the checksum is a cryptographic checksum.

16. A non-transitory machine-readable medium comprising instructions stored therein, which when executed by a machine, cause the machine to perform operations comprising:

receiving a file comprising an email attachment, the file comprising a plurality of blocks of data, wherein each block in the plurality of blocks of data is of a predetermined size, the predetermined size based on capabilities of at least one of a client device, a server, or a network;

receiving a characterization for a block of data in the plurality of blocks of data;

comparing, during the receiving of the file, the characterization for the block of data to a listing of characterization in an index storing characterizations identifying previously stored blocks of data and references to locations of the previously stored blocks of data; and

if the characterization for the block of data matches a characterization in the index:

canceling the receiving of the block of data,

identifying, using the characterization in the index, a previously stored block of data that is identical to the block of data in the plurality of blocks of data, and

attaching the previously stored block of data to an email as part of the email attachment.

17. The non-transitory machine-readable medium of claim 16 , the operations further comprising:

if the characterization for the block of data does not match any characterization in the index,

completing the receiving of the block of data,

calculating characterization for the block of data, and storing the characterization for the block of data with a reference to the block of data in the index.

18. The non-transitory machine-readable medium of claim 16 , wherein the characterization is a checksum.

19. The non-transitory machine-readable medium of claim 18 , wherein the checksum is a cryptographic checksum.

Assignments (1)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →