IP Library Granted Patent US 8,775,557
Granted Patent B2
US 8,775,557 · App. 13/218,654 · Granted Jul 8, 2014

Transferring files

Inventor: James Crawford (Belmont, MA)
Assignee: Facebook, Inc.
H04L67/06H04L51/04H04L67/28H04L67/2819H04L12/581
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,775,557
App. No.
13/218,654
Granted
Jul 8, 2014
Kind
B2
Abstract

Systems and techniques for transferring one or more files by connecting to a communications system host; sending, to a client connected to the communications system host, a request to transfer one or more files; when a client permits access to the one or more files, establishing a direct socket connection from the client and bypassing the communications system host; and initiating the transfer of the one or more files from the client over the direct socket connection.

Claims (57)

1. A method comprising:

receiving a request to transfer files associated with a second user to a first client connected to a communications system, the request being initiated by a first user of the first client and the request identifying the second user;

accessing, by at least one processor, a list of users specified by the second user, the list of users indicating which users are permitted to transfer files associated with the second user;

determining the first user is on the list of users specified by the second user that are permitted to transfer files associated with the second user;

identifying, based on determining the first user is on the list of users specified by the second user, a list of available files associated with the second user;

sending, to the first client, identification information for each of the files on the list of available files associated with the second user;

receiving, from the first client, a selection of at least one file from among the list of available files associated with the second user;

providing the second user an option to accept the request from the first user by:

providing a graphical user interface to be displayed to the second user to inform the second user of the request, the graphical user interface including a first graphical element selectable to accept the request and a second graphical element selectable to reject the request; and

detecting the second user selected the first graphical element to accept the request;

establishing a direct connection with the first client upon the second user accepting the request from the first user; and

initiating a transfer of the at least one selected file to the first client over the direct connection.

2. The method of claim 1 , wherein determining the first user is on the list of users specified by the second user comprises determining whether the list indicates that the first user is restricted from accessing the files associated with the second user.

3. The method of claim 1 , wherein the direct connection is a direct socket connection that bypasses the communications system.

4. The method of claim 1 , wherein the accessed list of users comprises a buddy list of the second user.

5. The method of claim 1 , wherein initiating a transfer of the at least one selected file to the first client comprises determining, prior to initiating the transfer of the at least one selected file, that a file corresponding to the at least one selected file is already stored at the first client.

6. The method of claim 5 , wherein initiating a transfer of the at least one selected file to the first client comprises transferring only an updated portion of the at least one selected file to the first client based on the file corresponding to the at least one selected file being stored at the first client.

7. The method of claim 1 , wherein initiating a transfer of the at least one selected file to the first client comprises:

determining, prior to initiating the transfer of the at least one selected file, that a file corresponding to the at least one selected file is not stored at the first client; and

initiating a transfer of the entire contents of the at least one selected file to the first client based one the file corresponding to the at least one selected file not being already stored at the first client.

8. The method of claim 1 , wherein the communications system is an instant messaging server.

9. The method of claim 1 , wherein receiving the request initiated by the first user comprises receiving a request initiated by the first user that identifies the second user, the request initiated by the first user being generated by the first client in response to the first user inputting an identity of the second user for retrieving files associated with the second user.

10. The method of claim 1 , further comprising enabling the second user to indicate a directory path where the list of available files associated with the second user are located, the directory path indicating the location of the files on the list of available files associated with the second user.

11. The method of claim 10 , wherein enabling the second user to indicate the directory path comprises enabling the second user to manually select or type in the directory path by interacting with a graphical user interface.

12. The method of claim 1 , wherein receiving the request comprises receiving the request from the communications system.

13. The method of claim 1 , wherein the request received from the first client includes a user identity of the first user and an Internet Protocol address of the first client.

14. An apparatus comprising:

a second client with at least one processor and at least one non-transitory computer-readable storage medium storing instructions thereon that, when executed by the at least one processor, cause the second client to:

connect to a communications system;

receive a request to transfer files associated with a second user to a first client connected to the communications system, the request being initiated by a first user of the first client and the request identifying the second user of the second client;

access a list of users specified by the second user, the list of users indicating which users are permitted to transfer files associated with the second user;

determine the first user is on the list of users specified by the second user that are permitted to transfer files associated with the second user;

identify, based on determining the first user is on the list of users specified by the second user, a list of available files associated with the second user;

send, to the first client, identification information for each of the files on the list of available files associated with the second user;

receive, from the first client, a selection of at least one file from among the list of available files associated with the second user;

provide a graphical user interface to be displayed to the second user to provide an option to the second user to accept the request, the graphical user interface including a first graphical element selectable to accept the request and a second graphical element selectable to reject the request;

detect the second user selected the first graphical element to accept the request;

establish a direct connection with the first client upon the second user accepting the request from the first user; and

initiate a transfer of the at least one selected file to the first client over the direct connection.

15. The apparatus of claim 14 , wherein the instructions when executed by the at least one processor, further cause the second client to determine whether the list indicates that the first user is restricted from accessing the files associated with the second user.

16. The apparatus of claim 14 , wherein the direct connection is a direct socket connection with the first client that bypasses the communications system.

17. The apparatus of claim 14 , wherein the communications system is an instant messaging server.

18. A non-transitory computer readable storage medium storing instructions thereon that, when executed by at least one processor, cause a computer system to:

receive a request to transfer files associated with a second user to a first client connected to a communications system, the request being initiated by a first user of the first client and the request identifying the second user;

access a list of users specified by the second user, the list of users indicating which users are permitted to transfer files associated with the second user;

determine the first user is on the list of users specified by the second user that are permitted to transfer files associated with the second user;

identify, based on determining the first user is on the list of users specified by the second user, a list of available files associated with the second user;

send, to the first client, identification information for each of the files on the list of available files associated with the second user;

receive, from the first client, a selection of at least one file from among the list of available files associated with the second user;

provide a graphical user interface to be displayed to the second user to provide an option to the second user to accept the request, the graphical user interface including a first graphical element selectable to accept the request and a second graphical element selectable to reject the request;

detect the second user selected the first graphical element to accept the request;

establish a direct connection with the first client upon the second user accepting the request from the first user; and

initiate a transfer of the at least one selected file to the first client over the direct connection.

19. The non-transitory computer readable storage medium as recited in claim 18 , wherein the instructions when executed by the at least one processor, further cause the computer system to enable the second user to indicate a directory path where the list of available files associated with the second user are located, the directory path indicating the location of the files on the list of available files associated with the second user.

20. The non-transitory computer readable storage medium as recited in claim 18 , wherein the direct connection is a direct socket connection with the first client that bypasses the communications system.

21. The non-transitory computer readable storage medium as recited in claim 18 , wherein the instructions when executed by the at least one processor, further cause the computer system to transfer only an updated portion of the at least one selected file to the first client based on a copy of the at least one selected file already being stored at the first client.

22. The non-transitory computer readable storage medium as recited in claim 21 , wherein the instructions when executed by the at least one processor, further cause the computer system to determine whether the copy of the at least one selected file is stored at the first client.

Assignments (5)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058961/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2012
From: AOL INC.
To: FACEBOOK, INC.
Reel/Frame 028463/0125 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2011
From: CRAWFORD, JAMES
To: AMERICA ONLINE, INC.
Reel/Frame 026819/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2011
From: AOL LLC
To: AOL INC.
Reel/Frame 026819/0110 →
CHANGE OF NAME Recorded Aug 29, 2011
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 026819/0187 →
Continuity (3)
Continuation 12477368 · Jun 3, 2009
Continuation 09572953 · May 18, 2000
Related Publication 20110314117A1 · Dec 22, 2011