IP Library Granted Patent US 12,379,879
Granted Patent B2
US 12,379,879 · App. 17/705,454 · Granted Aug 5, 2025

Efficient uploading of files to a storage service

Inventors: Karthik Sasidharan (Cary, NC); Rakesh Kumar (Cary, NC)
G06F3/067G06F3/0604G06F3/0655
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 12,379,879
App. No.
17/705,454
Granted
Aug 5, 2025
Kind
B2
Abstract

A computing system may (A) determine that a target service is to receive portions of a first file in a particular sequence from the computing system via a first hypertext transport protocol (HTTP) connection between the computing system and the target service, (B) receive a first portion of the first file from a client device via a second HTTP connection established between the computing system and the client device, (C) determine that the first portion of the first file is next in the particular sequence of file portions to be sent to the target service, (D) send, to the target service via the first HTTP connection, the first portion of the first file based at least in part on the first portion of the first file being next in the particular sequence, (E) receive a second portion of the first file from the client device via a third HTTP connection established between the computing system and the client device, (F) determine that the second portion of the first file is next in the particular sequence, and (G) send to the target service via the first HTTP connection, the second portion of the first file based at least in part on the second portion of the first file being next in the particular sequence.

Claims (78)

1. A method, comprising:

determining, by a computing system, that a target service is to receive portions of a first file in a particular sequence from the computing system via a first hypertext transport protocol (HTTP) connection between the computing system and the target service;

receiving, by the computing system, a first portion of the first file from a client device via a second HTTP connection established between the computing system and the client device;

determining, by the computing system, that the first portion of the first file is next in the particular sequence of file portions to be sent to the target service;

sending, from the computing system to the target service via the first HTTP connection, the first portion of the first file based at least in part on the first portion of the first file being next in the particular sequence;

receiving, by the computing system, a second portion of the first file from the client device via a third HTTP connection established between the computing system and the client device;

determining, by the computing system, that the second portion of the first file is next in the particular sequence;

sending, from the computing system to the target service via the first HTTP connection, the second portion of the first file based at least in part on the second portion of the first file being next in the particular sequence; and

determining, by the computing system, that a second target service is to receive portions of a second file from the computing system via a plurality of HTTP connections between the computing system and the second target service.

2. The method of claim 1 , further comprising:

storing the first portion of the first file in a first position in a storage of the computing system, based at least in part on the particular sequence; and

storing the second portion of the first file in a second position in the storage, based at least in part on the particular sequence.

3. The method of claim 1 , further comprising:

receiving, by the computing system and from the client device, a request to send the portions of the first file to the computing system, the request comprising first data indicative of a size of the first file and second data indicative of a target destination for the first file.

4. The method of claim 3 , further comprising:

receiving, by the computing system and from the client device, third data indicative of a relative position of the first portion within the first file; and

receiving, by the computing system and from the client device, fourth data indicative of a relative position of the second portion within the first file.

5. The method of claim 4 , wherein:

the first portion of the first file is determined to be next in the particular sequence based at least in part on the third data; and

the second portion of the first file is determined to be next in the particular sequence based at least in part on the fourth data.

6. The method of claim 1 , further comprising:

determining, by the computing system, a first connection capability of the target service,

wherein determining that the target service is to receive the portions of the first file in the particular sequence is based at least in part on the first connection capability of the target service.

7. The method of claim 1 , further comprising:

sending, from the computing system to the second target service, a first portion of the second file via a fourth HTTP connection between the computing system and the second target service; and

sending, from the computing system to the second target service, a second portion of the second file via a fifth HTTP connection between the computing system and the second target service.

8. The method of claim 1 , further comprising:

generating, by the computing system, a session identifier corresponding to the first file;

determining, by the computing system, that the first portion of the first file is associated with the session identifier;

determining, by the computing system, that the first portion of the first file is associated with the first file based at least in part on the first portion of the first file being associated with the session identifier;

determining, by the computing system, that the second portion of the first file is associated with the session identifier; and

determining, by the computing system, that the second portion of the first file is associated with the first file based at least in part on the second portion of the first file being associated with the session identifier.

9. A computing system, comprising:

at least one processor; and

at least one computer-readable medium encoded with instructions which, when executed by the at least one processor, cause the computing system to:

determine that a target service is to receive portions of a first file in a particular sequence from the computing system via a first hypertext transport protocol (HTTP) connection between the computing system and the target service;

receive a first portion of the first file from a client device via a second HTTP connection established between the computing system and the client device;

determine that the first portion of the first file is next in the particular sequence of file portions to be sent to the target service;

send, to the target service via the first HTTP connection, the first portion of the first file based at least in part on the first portion of the first file being next in the particular sequence;

receive a second portion of the first file from the client device via a third HTTP connection established between the computing system and the client device;

determine that the second portion of the first file is next in the particular sequence;

send, to the target service via the first HTTP connection, the second portion of the first file based at least in part on the second portion of the first file being next in the particular sequence; and

determine that a second target service is to receive portions of a second file from the computing system via a plurality of HTTP connections between the computing system and the second target service.

10. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

store the first portion of the first file in a first position in a storage of the computing system, based at least in part on the particular sequence; and

store the second portion of the first file in a second position in the storage, based at least in part on the particular sequence.

11. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

receive, from the client device, a request to send the portions of the first file to the computing system, the request comprising first data indicative of a size of the first file and second data indicative of a target destination for the first file.

12. The computing system of claim 11 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

receive, from the client device, third data indicative of a relative position of the first portion within the first file; and

receive, from the client device, fourth data indicative of a relative position of the second portion within the first file.

13. The computing system of claim 12 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

determine that the first portion of the first file is next in the particular sequence based at least in part on the third data; and

determine that the second portion of the first file is next in the particular sequence based at least in part on the fourth data.

14. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

determine a first connection capability of the target service; and

determining that the target service is to receive the portions of the first file in the particular sequence based at least in part on the first connection capability of the target service.

15. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

send, to the second target service, a first portion of the second file via a fourth HTTP connection between the computing system and the second target service; and

send, to the second target service, a second portion of the second file via a fifth HTTP connection between the computing system and the second target service.

16. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

generate a session identifier corresponding to the first file;

determine that the first portion of the first file is associated with the session identifier;

determine that the first portion of the first file is associated with the first file based at least in part on the first portion of the first file being associated with the session identifier;

determine that the second portion of the first file is associated with the session identifier; and

determine that the second portion of the first file is associated with the first file based at least in part on the second portion of the first file being associated with the session identifier.

17. At least one non-transitory computer-readable medium encoded with instructions which, when executed by at least one processor of a computing system, cause the computing system to:

determine that a target service is to receive portions of a first file in a particular sequence from the computing system via a first hypertext transport protocol (HTTP) connection between the computing system and the target service;

receive a first portion of the first file from a client device via a second HTTP connection established between the computing system and the client device;

determine that the first portion of the first file is next in the particular sequence of file portions to be sent to the target service;

send, to the target service via the first HTTP connection, the first portion of the first file based at least in part on the first portion of the first file being next in the particular sequence;

receive a second portion of the first file from the client device via a third HTTP connection established between the computing system and the client device;

determine that the second portion of the first file is next in the particular sequence;

send, to the target service via the first HTTP connection, the second portion of the first file based at least in part on the second portion of the first file being next in the particular sequence; and

determine that a second target service is to receive portions of a second file from the computing system via a plurality of HTTP connections between the computing system and the second target service.

18. The at least one non-transitory computer-readable medium of claim 17 , further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

store the first portion of the first file in a first position in a storage of the computing system, based at least in part on the particular sequence; and

store the second portion of the first file in a second position in the storage, based at least in part on the particular sequence.

Assignments (4)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2022
From: KUMAR, RAKESH
To: CITRIX SYSTEMS, INC.
Reel/Frame 059504/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2022
From: SASIDHARAN, KARTHIK
To: CITRIX SYSTEMS, INC.
Reel/Frame 059408/0363 →
Continuity (1)
Related Publication 20230305757A1 · Sep 28, 2023
References Cited (5)
US 10015205B1 · Cohen · 2018 [cited by examiner]
US 20140019635A1 · Reznik · 2014 [cited by examiner]
US 20170123864A1 · Knotts · 2017 [cited by examiner]
US 20170230260A1 · Gueta · 2017 [cited by examiner]
US 20250139280A1 · Ancin · 2025 [cited by examiner]