Share pools for sharing files via a storage service
This application relates to a client-server architecture that enables file sharing between an instructor and a class. The files are stored in a storage service accessible via a network, and a separate copy of each file can be shared with each student in the class. In order to facilitate the sharing of multiple copies of the file, a share pool is created in a partition of the storage service allocated to the instructor. The share pool includes a number of stub files that are placeholders for clones of the shared file. A share handler service receives a request to share a file with a class, requests a number of stub files from the share pool, and utilizes the number of stub files to generate clones of the shared file in the partition of the storage service. Students are then granted access to the clones in the partition.
1 . A method for distributing files to users, the method comprising, at a hardware server device that implements a storage service:
managing a share pool that includes a plurality of stub files, wherein each stub file of the plurality of stub files is a copy of a seed file that is an empty placeholder file, such that each stub file of the plurality of stub files correspondingly is an empty placeholder file;
generating, prior to managing the share pool, generating the share pool in a partition of a storage device, wherein the partition is allocated to an instructor for a class;
receiving a request to distribute a file to a plurality of users;
selecting, from the plurality of stub files, a group of stub files based on a number of the plurality of users;
generating a plurality of clones of the file by updating the group of stub files to reference the file;
migrating, prior to generating the plurality of clones of the file, the group of stub files from the share pool to a folder associated with the file; and
sharing the plurality of clones of the file with the plurality of users.
2 . The method of claim 1 , wherein the request is received in conjunction with a selection of the file performed by way of a user interface (UI).
3 . The method of claim 1 , wherein each clone of the file in the plurality of clones of the file includes an identifier associated with a respective user of the plurality of users.
4 . The method of claim 1 , further comprising, in response to identifying that a number of the plurality of stub files does not satisfy a threshold:
generating additional stub files to supplement the plurality of stub files.
5 . The method of claim 1 , wherein generating the plurality of clones of the file by updating the group of stub files to reference the file comprises, for each stub file of the group of stub files:
changing a file name of the stub file; and
updating a reference of the stub file in accordance with a location of the file.
6 . A non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor included in a hardware server device that implements a storage service, cause the hardware server device to distribute files to users, by carrying out steps that include:
managing a share pool that includes a plurality of stub files, wherein each stub file of the plurality of stub files is a copy of a seed file that is an empty placeholder file, such that each stub file of the plurality of stub files correspondingly is an empty placeholder file;
generating, prior to managing the share pool, generating the share pool in a partition of a storage device, wherein the partition is allocated to an instructor for a class;
receiving a request to distribute a file to a plurality of users;
selecting, from the plurality of stub files, a group of stub files based on a number of the plurality of users;
generating a plurality of clones of the file by updating the group of stub files to reference the file;
migrating, prior to generating the plurality of clones of the file, the group of stub files from the share pool to a folder associated with the file; and
sharing the plurality of clones of the file with the plurality of users.
7 . The non-transitory computer readable storage medium of claim 6 , wherein the request is received in conjunction with a selection of the file performed by way of a user interface (UI).
8 . The non-transitory computer readable storage medium of claim 6 , wherein each clone of the file in the plurality of clones of the file includes an identifier associated with a respective user of the plurality of users.
9 . The non-transitory computer readable storage medium of claim 6 , wherein the steps further include, in response to identifying that a number of the plurality of stub files does not satisfy a threshold:
generating additional stub files to supplement the plurality of stub files.
10 . The non-transitory computer readable storage medium of claim 6 , wherein generating the plurality of clones of the file by updating the group of stub files to reference the file comprises, for each stub file of the group of stub files:
changing a file name of the stub file; and
updating a reference of the stub file in accordance with a location of the file.
11 . A hardware server device configured distribute files to users, the hardware server device comprising at least one processor configured to cause the hardware server device to implement a storage service and carry out steps that include:
managing a share pool that includes a plurality of stub files, wherein each stub file of the plurality of stub files is a copy of a seed file that is an empty placeholder file, such that each stub file of the plurality of stub files correspondingly is an empty placeholder file;
generating, prior to managing the share pool, generating the share pool in a partition of a storage device, wherein the partition is allocated to an instructor for a class;
receiving a request to distribute a file to a plurality of users;
selecting, from the plurality of stub files, a group of stub files based on a number of the plurality of users;
generating a plurality of clones of the file by updating the group of stub files to reference the file;
migrating, prior to generating the plurality of clones of the file, the group of stub files from the share pool to a folder associated with the file; and
sharing the plurality of clones of the file with the plurality of users.
12 . The hardware server device of claim 11 , wherein the request is received in conjunction with a selection of the file performed by way of a user interface (UI).
13 . The hardware server device of claim 11 , wherein each clone of the file in the plurality of clones of the file includes an identifier associated with a respective user of the plurality of users.
14 . The hardware server device of claim 11 , wherein the steps further include, in response to identifying that a number of the plurality of stub files does not satisfy a threshold: generating additional stub files to supplement the plurality of stub files.