# US 12,113,847 B2 · System and method for data transfer, including protocols for use in data transfer in a content management environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,113,847 B2
- Document ID: US12113847B2
- Status: Granted
- Kind: B2
- Application number: 17/966,144
- Filed: 2022-10-14
- Published: 2023-02-09
- Granted: 2024-10-08
- Earliest claimed: 2019-08-22
- Assignees: Open Text Corporation
- Applicants: Open Text Corporation
- Inventors: Dan-Horia Trufasiu; George Frederick Kevin Morris; Tao Zhou
- Web page: https://patentgrep.com/patent/US12113847B2

## CPC

- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- G06F 16/168: {Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs (query results presentation G06F16/156)}
- H04L 65/4025: {where none of the additional parallel sessions is real time or time sensitive, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services}
- H04L 67/52: specially adapted for the location of the user terminal
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of a service based data transfer system are disclosed herein. Embodiments may of such a data transfer system may include a data transfer server providing a common data transfer interface such as a services interface that may be called by a client device to transfer data files to, or retrieve data files from a content management system.

## Claims

### Claim 1

A method comprising:
at a transfer handler of a data transfer server, receiving a request to initiate the data transfer of a client file associated with a client application from a client device having the client application executing thereon to a content management system;
for each chunk of a set of chunks identified in a chunk map created on the client device,
receiving, by the transfer handler, an upload request containing the chunk, and
storing, by the transfer handler, the chunk into a corresponding transfer file on the data transfer server;
receiving, by the transfer handler, a commit request; and
sending, by the transfer handler in response to receiving the commit request, a file storage request to the content management system, the file storage request containing the transfer file.

### Claim 2 (depends on 1)

The method of claim 1, further comprising, in response to receiving the request to initiate the data transfer, the transfer handler generating a transfer identifier corresponding to the data transfer and returning the transfer identifier responsive to the request to initiate the data transfer.

### Claim 3 (depends on 2)

The method of claim 2, further comprising, in response to receiving the request to initiate the data transfer, the transfer handler creating a corresponding transfer controller object and the corresponding transfer file.

### Claim 4 (depends on 2)

The method of claim 2, wherein each upload request contains the transfer identifier.

### Claim 5 (depends on 1)

The method of claim 1, wherein the chunk map includes a size of the client file and a number of chunks that comprise the client file.

### Claim 6 (depends on 5)

The method of claim 5, wherein the chunk map further includes an identifier for each chunk and a corresponding offset of the chunk from a beginning of the client file.

### Claim 7 (depends on 1)

The method of claim 1, further comprising, when each upload request is received by the transfer handler, identifying the transfer identifier in the upload request, determining the transfer controller object corresponding to the transfer identifier, and storing the chunk into the transfer file corresponding to the transfer controller object.

### Claim 8 (depends on 1)

The method of claim 1, further comprising, after receiving each upload request, returning a response indicating either that the chunk has been successfully received, or that the transfer of the chunk has failed.

### Claim 9 (depends on 1)

The method of claim 1, further comprising obtaining, by the transfer handler, a location in the content management system for storing the transfer file, wherein the file storage request to the content management system specifies the location.

### Claim 10 (depends on 1)

The method of claim 1, further comprising receiving, by the transfer handler from the content management system, a response confirming storage of the transfer file on the content management system.

### Claim 11 (depends on 10)

The method of claim 10, in response to receiving the response confirming storage of the transfer file on the content management system, freeing the corresponding transfer controller object and removing an association between the transfer identifier and the corresponding transfer controller object from the chunk map.

### Claim 12 (depends on 10)

The method of claim 10, in response to receiving the response confirming storage of the transfer file on the content management system, removing from the data transfer server the transfer file and any other objects associated with the data transfer of the client file.

### Claim 13 (depends on 10)

The method of claim 10, in response to receiving the response confirming storage of the transfer file on the content management system, responding to the commit request with an indication that the data transfer of the client file has been successful.

### Claim 14

A non-transitory computer readable medium, storing instructions executable by a processor for:
at a transfer handler of a data transfer server, receiving a request to initiate the data transfer of a client file associated with a client application from a client device having the client application executing thereon to a content management system;
for each chunk of a set of chunks identified in a chunk map created on the client device:
receiving, by the transfer handler, an upload request containing the chunk, and
storing, by the transfer handler, the chunk into a corresponding transfer file on the data transfer server;
receiving, by the transfer handler, a commit request; and
sending, by the transfer handler in response to receiving the commit request, a file storage request to the content management system, the file storage request containing the transfer file.

### Claim 15 (depends on 14)

The non-transitory computer readable medium of claim 14, the instructions further executable by the processor for, in response to receiving the request to initiate the data transfer, the transfer handler: generating a transfer identifier corresponding to the data transfer and returning the transfer identifier responsive to the request to initiate the data transfer; and creating a corresponding transfer controller object and the corresponding transfer file.

### Claim 16 (depends on 14)

The non-transitory computer readable medium of claim 14, wherein the chunk map includes a size of the client file, a number of chunks that comprise the client file, an identifier for each chunk and a corresponding offset of the chunk from a beginning of the client file.

### Claim 17

A data transfer server comprising:
one or more server machines coupled to one or more data storage devices, the one or more server machines comprising a transfer handler configured to:
receive a request to initiate the data transfer of a client file associated with a client application from a client device having the client application executing thereon to a content management system;
for each chunk of a set of chunks identified in a chunk map created on the client device,
receive an upload request containing the chunk, and
store the chunk into a corresponding transfer file on the data transfer server;
receive a commit request; and
send, in response to receiving the commit request, a file storage request to the content management system, the file storage request containing the transfer file.

### Claim 18 (depends on 17)

The data transfer server of claim 17, the transfer handler further configured to, in response to receiving the request to initiate the data transfer: generate a transfer identifier corresponding to the data transfer and return the transfer identifier responsive to the request to initiate the data transfer; and create a corresponding transfer controller object and the corresponding transfer file.

### Claim 19 (depends on 17)

The data transfer server of claim 17, wherein the chunk map includes a size of the client file, a number of chunks that comprise the client file, an identifier for each chunk and a corresponding offset of the chunk from a beginning of the client file.
