SYSTEM FOR AND METHOD FOR MEDIA UPLOAD MULTITHREADING FOR LARGE FILE UPLOADS
First Claim
Patent Images
1. A system, comprising:
- a processor; and
a memory comprising computer-readable instructions which when executed by the processor cause the processor to perform the steps comprising;
receiving a file having a size property;
determining a maximum upload chunk size for the file;
identifying a total number of file chunks to upload based on the file size property and the maximum upload chunk size;
configuring a maximum number of allowable threads and a maximum number of HTTP connections;
reading a portion of the file into a byte buffer array having a size equal to the maximum upload chunk size;
passing a chunk number, the byte buffer array, and a chunk checksum into one thread associated with the maximum number of allowable threads for upload execution;
uploading the chunk number, the byte buffer array, and the chunk checksum using one HTTP connection of the maximum number of HTTP connections;
receiving, via a network, a content token returned by a receiving server after the byte buffer array, the chunk number, and the chunk checksum have been received at the receiving server;
storing the received content token along with a chunk number as a pair;
determining whether the total number of file chunks have been uploaded; and
when the total number of file chunks have been uploaded, passing all stored content tokens in the order of chunk number and a file checksum to the receiving server for file consolidation.
1 Assignment
0 Petitions
Accused Products
Abstract
Exemplary embodiments provide a system and method for uploading large files to a remote server faster. The system and method divide the file into smaller file chunks and utilize parallel thread execution to prepare and upload the file chunks to the remote server. The uploading may further utilize a plurality of HTTP connections. Once all chunks have been uploaded to the remote server, the chunks may be consolidated into the original file by using content tokens and chunk numbers associated with the uploaded chunks.
23 Citations
20 Claims
-
1. A system, comprising:
-
a processor; and a memory comprising computer-readable instructions which when executed by the processor cause the processor to perform the steps comprising; receiving a file having a size property; determining a maximum upload chunk size for the file; identifying a total number of file chunks to upload based on the file size property and the maximum upload chunk size; configuring a maximum number of allowable threads and a maximum number of HTTP connections; reading a portion of the file into a byte buffer array having a size equal to the maximum upload chunk size; passing a chunk number, the byte buffer array, and a chunk checksum into one thread associated with the maximum number of allowable threads for upload execution; uploading the chunk number, the byte buffer array, and the chunk checksum using one HTTP connection of the maximum number of HTTP connections; receiving, via a network, a content token returned by a receiving server after the byte buffer array, the chunk number, and the chunk checksum have been received at the receiving server; storing the received content token along with a chunk number as a pair; determining whether the total number of file chunks have been uploaded; and when the total number of file chunks have been uploaded, passing all stored content tokens in the order of chunk number and a file checksum to the receiving server for file consolidation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
receiving, on a sending device having at least one processor, a file having a size property; determining, on the sending device, a maximum upload chunk size for the file; identifying, on the sending device, a total number of file chunks to upload based on the file size property and the maximum upload chunk size; configuring, on the sending device, a maximum number of allowable threads and a maximum number of HTTP connections; reading a portion of the file into a byte buffer array having a size equal to the maximum upload chunk size; passing a chunk number, the byte buffer array, and a chunk checksum into one thread associated with the maximum number of allowable threads for upload execution; uploading, to a receiving server, the a chunk number, the byte buffer array, and the chunk checksum using one HTTP connection of the maximum number of HTTP connections; receiving, via a network, a content token returned by the receiving server after the byte buffer array, chunk number, and chunk checksum have been received at the receiving server; storing, on the sending device, the received content token along with a chunk number as a pair; and determining, on the sending device, whether the total number of file chunks have been uploaded, wherein when the total number of file chunks have been uploaded, the processor passes stored content token and chunk number pairs in the order of chunk number and a computed file checksum to the receiving server for file consolidation. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification