Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for duplication of files on a user device, the user device being connected to a cloud storage server over a communication network, the method comprising: receiving, by a hardware processor of a user device, a request to upload a file stored locally on the user device into the cloud storage server; responsive to the request, determining, by the hardware processor, a time required to generate a unique file identifier for said file, the unique file identifier for verifying a presence of a duplicate of said file on the cloud storage server, a time required to upload said file to the cloud storage server, and an average probability of said file not being a unique file on the cloud storage server; responsive to (i) the time required to generate the unique file identifier for said file exceeding (ii) the time required to upload said file to the cloud storage server multiplied by the average probability of the file not being the unique file on the cloud storage server, initiating, by the hardware processor, the uploading of the file to the cloud storage server; responsive to the time required to upload said file to the cloud storage server multiplied by the average probability of the file not being the unique file on the cloud storage server exceeding the time required to generate the unique file identifier, executing steps of: generating, by the hardware processor, said unique file identifier and transmitting the unique file identifier to the cloud storage server; receiving, from the cloud storage server, an indication of the presence of the unique file number on the cloud storage server; and responsive to the indication of the presence of the unique file number on the cloud storage server being negative, initiating, by the hardware processor, the uploading of the file to the cloud storage server.
2. The method of claim 1 , wherein the unique file identifier includes at least one hash of the file.
3. The method of claim 1 , wherein determining time to upload the file to the cloud storage server, includes analyzing one or more of a bandwidth of the network connection between the user device and the cloud storage device, computational resources currently available at the user device, characteristics of the user device, and a size and a type of the file.
4. The method of claim 3 , further comprising: storing in a local storage of the user device the information about computational resources of the user device after they are analyzed in order not to analyze computational resources of the user device again next time.
5. The method of claim 1 , wherein the determining the time required to generate the unique file identifier, the time required to upload said file on the cloud storage server, and the average probability of said file not being unique on the cloud storage server further comprises determining the size of the file; and wherein the steps of the initiating the uploading of the file to the cloud storage server and the transmitting the unique file identifier to the cloud storage server are executed only in response to the size of the file exceeding a predetermined size.
6. The method of claim 1 , wherein the method is implemented in one or more of: a browser code executed on the user device, in a code of a native cloud storage application running on the user device, and a website code executed on the user device.
7. The method of claim 1 , further comprising: starting calculation of the unique file identifier substantially simultaneously with the uploading of the file to the cloud storage server.
8. The method of claim 7 , further comprising: if uploading of the file to the cloud storage server is finished earlier than generation of the unique file identifier, terminating generation of the unique file identifier; and if generation of the unique file identifier is finished earlier than uploading of the file to the cloud storage server, transmitting the unique file identifier to the cloud storage server, and: if the file is unique, continue uploading the file to the cloud storage server; if the file is not unique, terminating uploading of the file to the cloud storage server.
9. A system for duplication of files on a user device, the user device being connected to a cloud storage server over a communication network, the system comprising: a hardware processor of the user device being configured to: receive a request to upload a file stored locally on the user device into the cloud storage server; responsive to the request, determine a time required to generate a unique file identifier for said file, the unique file identifier for verifying a presence of a duplicate of said file on the cloud storage server a time required to upload said file to the cloud storage server, and an average probability of said file not being a unique file on the cloud storage server; responsive to (i) the time required to generate the unique file identifier for said file exceeding (ii) the time required to upload said file to the cloud storage server multiplied by the average probability of the file not being the unique file on the cloud storage server, initiate the uploading of the file to the cloud storage server; responsive to the time required to upload said file to the cloud storage server multiplied by the average probability of the file not being the unique file on the cloud storage server exceeding the time required to generate the unique file identifier: generate said unique file identifier and transmit the unique file identifier to the cloud storage server; receive, from the cloud storage server, an indication of the presence of the unique file number on the cloud storage server; and responsive to the indication of the presence of the unique file number on the cloud storage server being negative, initiate the uploading of the file to the cloud storage server.
10. The system of claim 9 , wherein the unique file identifier includes at least one hash of the file.
11. The system of claim 9 , wherein determining time to upload the file to the cloud storage server, includes analyzing one or more of a bandwidth of the network connection between the user device and the cloud storage device, computational resources currently available at the user device, characteristics of the user device, and a size and a type of the file.
12. The system of claim 9 , wherein the hardware processor is further configured to: store in a local storage of the user device the information about computational resources of the user device after they are analyzed in order not to analyze computational resources of the user device again next time.
13. The system of claim 9 , wherein the hardware processor is further configured to, during the determining the time required to generate the unique file identifier for said file, the time required to upload said file to the cloud storage server, and the average probability of said file not being a unique file on the cloud storage server: determine the size of the file; and wherein the hardware processor is further configured to execute the steps of the initiating the uploading of the file to the cloud storage server and the transmitting the unique file identifier in response to to the size of the file exceeding a predetermined size.
14. The system of claim 9 , wherein the hardware processor is further configured to: start calculation of the unique file identifier substantially simultaneously with the uploading of the file to the cloud storage server.
15. The system of claim 14 , wherein the hardware processor is further configured to: if uploading of the file to the cloud storage server is finished earlier than generation of the unique file identifier, terminate generation of the unique file identifier; and if generation of the unique file identifier is finished earlier than uploading of the file to the cloud storage server, transmit the unique file identifier to the cloud storage server, and: if the file is unique, continue uploading the file to the cloud storage server; if the file is not unique, terminate uploading of the file to the cloud storage server.
Unknown
March 20, 2018
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.