Various embodiments described herein relate generally to sharing files over a network. Particular embodiments pertain to systems and methods for allowing a user to provide others with shared access to folders of documents stored within a document management service, such as a cloud-based document management service.
Individuals often wish to share digital files with others. In some cases, a particular individual may wish to simply share copies of files with others. In other instances, it may be desirable to allow others to modify copies of one or more files stored centrally within a particular shared folder. There is currently a need for a system that allows individuals to more easily share copies of files and folders with others. This can be useful in cases, for example, where it is desirable to have certain individuals collaborate to produce a particular document or collection of documents.
A computer-implemented method, in various embodiments, comprises (1) receiving a request, from a link sharer, to generate a link that, when activated, facilitates providing modification rights to a folder of digital content; (2) in response to said request, generating a link that, when activated by a link recipient, facilitates providing modification rights to said folder; (3) receiving an indication that said link has been activated; and (4) in response to receiving said indication, facilitating the provision of modification rights, to the link recipient, to said folder.
A computer-implemented method, in various embodiments, of sharing files between a link sharer and a link recipient comprising the steps of (1) in response to receiving a request to share a folder containing digital content, generating a link that, when activated, facilitates providing modification rights to said digital content in said folder; (2) at least partially in response to receiving an indication that said folder sharing link has been activated, executing a step that is selected from a group consisting of: (i) automatically granting modification rights to the folder at least partially based on the satisfaction of at least one permission criterion; and (ii) requesting manual approval from a link sharer to provide modification rights to the shared folder.
Various embodiments of a computer system for providing shared access to a particular folder are described below. In the course of this description, reference will be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Various embodiments will now be described. It should be understood that the present system and method may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present system and method to those skilled in the art. Like numbers refer to like elements throughout.
In various embodiments, a file sharing and retrieval system is provided that allows a first user (the “link sharer”) to create a link that provides shared access to a folder or a group of folders. The shared access to a particular folder may involve, for example, adding the folder to a user's account within a shared file service (e.g., a cloud-based shared file service); and/or (2) allowing the user (e.g., the recipient of the link, or “link recipient”) to modify the folder and the contents therein. For example, after receiving shared access to a particular folder, the link recipient may be able to edit, delete, add or modify files in the folder associated with the link. In various embodiments, the link may, for example, be a URL or any other suitable indicia that includes a file path to the files and/or folders. Once created, the link sharer can share the link with the link recipient to allow the link recipient to collaborate with other individuals in writing and/or editing documents within the folder.
Once the link recipient clicks on the link (if it is an active link) or copies the link and pastes it into their browser's address bar, the system may add a folder associated with the link to the link recipient's account with a document management service (e.g., a cloud-based, synched document management service), and provide the link recipient with modification rights to the folder and its contents. In a particular embodiment, the user's browser may also open a new window that displays the contents of the shared folder so that the user may immediately begin working with the files.
In various embodiments, when the link recipient activates the link, the file storage server system may either automatically provide the link recipient with shared access to the shared folder, or not act on the activation of the link until the link sharer manually grants modification rights to the link recipient.
The file storage server system may automatically grant shared access to a particular folder, for example, in response to determining that one or more permission criteria specified by the link sharer have been satisfied. Such permission criteria may, for example, be defined globally as preferences by the link sharer, or established on a link-by-link basis. This may, for example, permit the link sharer both flexibility and efficiency during generation of the link.
In various embodiments, permission criteria may include, for example: (1) the link sharer and the link recipient belonging to a common domain, social media collective or other user-defined group; (2) the link recipient's e-mail address being included in the link sharer's contact information or address book; and/or (3) the link recipient being a registered user of the file storage server system. In other embodiments, the criteria may be based on any number of other conditions determinable by the system. In various embodiments, if the specified criteria are met, the system may provide the link recipient with shared access to the folder. In other embodiments, the link sharer may specify that they must specifically authorize shared access to the folder after the link recipient activates the link. Thus, in these embodiments, activation of the link acts as a request from the link recipient for shared access to the folder.
An exemplary platform for implementing various embodiments will now be discussed. Referring to
In various embodiments, each client device 10 has a file storage service client application 12A and 12B (collectively 12) through which respective files 14A and 14B of that client are specified for storage in file storage server system 20. It is noted that in some embodiments synchronized copies of files 14A and 14B may be kept on both file storage server system 20 and each respective client device 10. In some embodiments, client devices 10 may provide a file-browser type interface (not shown) for directly manipulating the files stored on file storage server system 20 without maintaining a local copy, such as on a smartphone or tablet computer. Client devices 10 may also include a web browser 16A and 16B (collectively 16) for retrieving and presenting web pages and other content from web servers. Examples of suitable web browsers that may be used by client devices 10 include FIREFOX, GOOGLE CHROME, INTERNET EXPLORER, OPERA, and SAFARI. It should be understood by those skilled in the art that web browser 16 may optionally be used to access file storage server system 20 instead of using file storage service client application 12.
Still referring to
File storage server system 20 stores files and manages access to those files by client devices 10. File storage server system 20 and its components may be implemented using any appropriate hardware and software for performing file serving, storage and retrieval functions. For purposes of clarity and ease of description,
In various embodiments, file storage server system 20 includes an interface module 22, an account module 24, a link-based sharing module 26 and a data store 28. Interface module 22 facilitates file access and file storage between file storage server system 20 and client devices 10. Interface module 22 receives files from and sends files to client devices 10 consistent with the user's preferences for sharing files. Interface module 22 may act as the counterpart to a client-side file storage service client application 12A, 12B user interface that allows a user to manipulate files directly stored on file storage server system 20. In some embodiments, software operating on client devices 10 integrates network-stored files with the client's local file system to enable a user to manipulate network-stored files through the same user interface (UI) used to manipulate files on the local file system, e.g., via a file explorer, file finder or browser application. As an alternative or supplement to the client-side file-explorer interface, user interface module 22 may provide a web interface for client devices 10 to access (e.g. via browser 16) and allow a user to manipulate files stored on file storage server system 20. In this way, the user can directly manipulate files stored on file storage server system 20.
In various embodiments, data store 28 stores files such as those uploaded using client devices 10. In the embodiment illustrated in
Data store 28 maintains, for each user, information identifying the user, information describing the user's file directory, etc. in a file journal that is maintained for each user. In some embodiments, the file journal is maintained on file storage server system 20. This file journal may be updated periodically using information obtained directly from the file storage server system 20 and/or from information obtained from one or more client devices 10. In this way, the server-stored file journal on file storage server system 20 (hereinafter the “server-side file journal”) is updated when a file is changed at the server or on the local client. The file storage server system 20 then communicates with one or more clients devices 10 to assure that any relevant changes are reflected locally. For example, if a particular user makes a change to a particular file on a first client device, the change will be reflected in the server-side file journal, and the server-side file journal will be used to propagate the changes so that they are reflected both on the file storage server system 20 and on all client devices associated with the user. Such techniques may be implemented, for example, within the context of a synchronized file system such as the DROPBOX service of Dropbox, Inc. of San Francisco, Calif.
Account module 24 tracks files stored in data store 28 and entries in the server-side file journal for each file. As users grant other users modification rights, account module 24 updates the server-side file journal associated with each user in data store 20. Account module 24 may also track client devices 10 that are associated with each user's account. Such devices may include, for example, a user's desktop computer, tablet computer, and handheld device.
Referring to
In various embodiments, file storage server system 20 is also configured to create a unique file reference string 46 for each file by concatenating file segment identifiers 44A 44E. User identifier XXXXXX 48 and file reference string 46 are placed in a file journal entry 47. It should be understood that other information such as a version reference 50 and device reference 52 may also be included in file journal entry 48. In still other embodiments, information (metadata) related to the file and its content (e.g., image orientation, pixel resolution and file type if the file is an image) may also be included in the file journal entry to properly orient and process the file for ease of viewing. Those skilled in the art will understand from this disclosure that any information associated with a file might be included in file journal entry 48 to enhance the features of the present system. In yet other embodiments, file journal entry 48 may be entered into a single server-side file journal that is used for all users. In yet other embodiments, the system may assign each user their own server-side file journal so that only file journal entries for each file associated with that user are stored in their respective server-side file journal.
Referring to
In various embodiments, the link sharer, as defined above as the person sharing the link, can select any folder, or combination of folders, to be shared with one or more other users. It should be understood that, in various embodiments, when a user shares a folder with other users, the other users are granted modification rights to the digital content contained within the folder(s). As such, a user who has modification rights to a folder may add digital content to the folder, delete digital content from the folder or edit any digital content contained in the shared folder. In certain embodiments, sharing a folder with a user also causes the folder to be added to the user's account within the context of a content management service.
Referring to
Link generation module 32 is configured to generate a link corresponding to the folder specified by the user. In one embodiment, upon receiving a request to share a particular folder, link generation module 32 generates the unique folder descriptor of the shared folder and a unique file location path or URL that serves as the link. Sharing module 26 saves an association of the folder descriptor and the file location path or URL to data store 28. In some embodiments, the generated folder sharing link is independent of the folder descriptor so that the folder descriptor cannot be inferred from the folder sharing link, and vice versa. An independent folder descriptor and file location path or URL prevents malfeasance by making it essentially impossible to guess or reverse engineer a sharable link. As an example, when sharing a folder “Reunion” with a file ID of 3D8B99, link generation module 32 might generate a unique (e.g., one-way pad, or a pseudo-random value) URL https://www.service.com/s/2608u2mnco/BBQ, where the URL component 2608u2mnco cannot be reverse-engineered, and accordingly create an entry <3D8B99, https://www.service.com/s/2608u2mnco/BBQ> in data store 28. In some embodiments, the generated URL https://www.service.com/s/2608u2mnco/BBQ can further be shortened using a link-shortening service to a shorter URL (e.g., https://db.tt/xOFounw) and an additional association between the original link and the shortened link can be added to data store 28. In another embodiment, the folder can be directly associated with the shortened link rather than with an intermediate, longer generated link.
In still other embodiments, a user can generate multiple different links to the same folder. Thus, the user can more selectively control access to the folder by distributing different selections from among the multiple different links to different link-recipients or sets thereof. This may, for example, allow a user to deactivate certain links while keeping others active.
In various embodiments, the generated folder sharing link can be used to provide many users shared access to a folder and the contents therein. For example, the link may be posted to a website such as LinkedIn. In these embodiments, the link sharer may create a link to a folder that is relevant to a particular group of users on LinkedIn. By posting the link on the LinkedIn page, members of the group can use the link to access the folder. In this way, the link sharer can provide modification rights to many recipients without having to send a specific folder sharing invitation to each individual group member. Use of a global shared folder link may be advantageous, for example, in situations in which a content sharer does not have information about each member of a group, but wishes to share content with all members of a group.
Beginning at step 100, the file storage server system 20 (
In response to detecting that the link has been activated by a link recipient, at step 106, the file storage server system checks at least one permission criterion to determine whether the link recipient should be provided with shared access to the linked folder based on one or more criteria that the link sharer sets. The link sharer may define such criteria globally as preferences, or may establish the criteria on a link-by-link basis. In various embodiments, suitable permission criteria may include, for example: (1) the link sharer and the link recipient belonging to a common domain, social media collective or other user-defined group; (2) the link recipient's email address being included in the link sharer's contact information or address book; and/or (3) the link recipient being a registered user of the file storage server system. In other embodiments, the criteria may be based on any number of other conditions determinable by the system. In various embodiments, if the specified criteria are met, the system provides the user with shared access to the folder. In other embodiments, when setting up the link, the link sharer may specify that they must specifically authorize any grants of shared access to the folder.
If the file storage server system 20 determines, at step 106, that the permission criteria are met, the file storage server system grants the link recipient shared access to the linked folder at step 116, and at step 118, the system sends a notice (e.g., to the link recipient and/or the link sharer) that the link recipient has modification rights to the shared folder.
Otherwise, at step 108, the file storage server system 20 sends a request to the link sharer indicating that the link recipient is awaiting modification rights to the linked folder. At step 110, the file server storage system 20 checks whether the link sharer has manually granted modification rights to the link recipient (which the system may facilitate by displaying an appropriate message to the link sharer indicating that the link recipient is awaiting approval for modification rights to the shared folder). At step 112, if the link sharer approves the modification rights, the file storage server system 20 grants the link recipient modification rights to the shared folder and notifies the link recipient. Otherwise, at step 114, the file storage server system 20 sends a shared folder rejection notice to the link recipient to indicate that the link sharer will not grant modification rights to the shared folder. In particular embodiments, if modification rights are not granted within a predetermined period of time (e.g., within 2 weeks), the system automatically discards the request.
It should be understood that the various steps described herein may vary in the context of different embodiments and that certain steps may be omitted and other steps may be added.
The following exemplary user experience is described in reference to a file sharing system provided by Dropbox, Inc. of San Francisco, Calif. (hereinafter DROPBOX). However, it should be understood after review of this disclosure by those of skill in the relevant field that the functionality described herein may be used with other file sharing systems.
A link sharer may generate a link to share a folder via link generation module 32 (
In still another embodiment illustrated in
Referring to
In other embodiments in which the link sharer wishes the share the link with a group of link recipients, a link sharing option area 76 is displayed that allows the user to share the link using a social media program, for example, FACEBOOK, TWITTER or YAHOO Groups. Selection from link sharing option area 76 prompts the link sharer for their login information for the selected service. Assuming that correct login information is provided, link distribution module 36 uses an application-programming interface (“API”) of the selected service to disseminate the link via the service, such as by adding it as a post to the link sharer's page on a social networking service (e.g. Facebook), by sending it as part of a textual message on a micro blogging service (e.g. Twitter), or by posting the link to a group wall (e.g., Yahoo Groups) where members of the group can access the link. It should be understood that the generated link 68 could be shared by copying the link and posting it on any webpage or through any other suitable sharing means.
Once the link recipient receives the link or locates the link on a webpage, the link recipient may, for example, select (e.g., click on) the link if it is an active link or, referring to
Referring to
In various embodiments, the link sharer may set their preferences such that any link recipient that activates a shared folder link is provided shared folder access to the linked folder. For example, the link sharer may wish to collect the names and addresses of all of the students within a particular class. To do so, they may create a document entitled “Student Names/Addresses” and place the document in a folder titled “Student Information”. The link sharer may then use the system to create a link to the shared folder as described above and then e-mail the link to everyone in the class. Each member of the class could then: (1) use the link to add the shared folder to their document sharing service (e.g., their DROPBOX document sharing service); and (2) edit the document so that it includes their name and address. The students may continue to use the shared folder to share notes or other files, or to collaborate on other documents.
As discussed above, in various embodiments in which the link sharer generates a link that requires manual approval for the link recipient to receive shared folder access to a folder, the file storage server system 20 does not automatically direct the link recipient to the contents of the shared folder when they activate the link. Instead, the file storage server system 20 sends a request to the link sharer asking them to approve the grant of modification rights to the link recipient. For example, and referring to
In particular embodiments, the computer 200 may be connected (e.g., networked) to other computers in a LAN, an intranet, an extranet, and/or the Internet. The computer 200 may operate in the capacity of a server or a client computer in a client-server network environment, or as a peer computer in a peer-to-peer (or distributed) network environment. The computer 200 may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or any computer capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that computer. Further, while only a single computer is illustrated, the term “computer” shall also be taken to include any collection of computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The exemplary computer 200 includes a processing device 202, a main memory 204 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 206 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 218, which communicate with each other via a bus 232.
The processing device 202 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. The processing device 202 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 202 may be configured to execute the processing logic 226 for performing various operations and steps discussed herein.
The computer 200 may further include a network interface device 208. The computer 200 also may include a video display unit 210 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 212 (e.g., a keyboard), a cursor control device 214 (e.g., a mouse), and a signal generation device 216 (e.g., a speaker).
The data storage device 218 may include a non-transitory computer-accessible storage medium 230 (also known as a non-transitory computer-readable storage medium or a non-transitory computer-readable medium) on which is stored one or more sets of instructions (e.g., software 222) embodying any one or more of the methodologies or functions described herein. The software 222 may also reside, completely or at least partially, within the main memory 204 and/or within the processing device 202 during execution thereof by the computer 200, the main memory 204 and the processing device 202 also constituting computer-accessible storage media. The software 222 may further be transmitted or received over a network 220 via the network interface device 208.
While the computer-accessible storage medium 230 is shown in an exemplary embodiment to be a single medium, the term “computer-accessible storage medium” should be understood to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-accessible storage medium” shall also be understood to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the computer and that cause the computer to perform any one or more of the methodologies of the present invention. The term “computer-accessible storage medium” shall accordingly be understood to include, but not be limited to, solid-state memories, optical and magnetic media, etc.
Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. For example, it should also be understood that, although various embodiments are described above as using a link (e.g., a URL) to provide user access to a shared folder, any other suitable indicia may be used for this purpose such as a link that includes a file path to the folder.
In particular embodiments, the process of granting users shared access to folders may be granted within the context of a synched file system such as the DROPBOX service. Various techniques associated with granting access to shared folders are described in the following patent applications, which are each hereby incorporated herein by reference in their entirety: (1) U.S. Patent Application No. 61/233,787, entitled “Systems and Methods for Sharing Data,” which was filed on Aug. 18, 2009, and (2). U.S. patent application Ser. No. 12/856,581, entitled “Network Folder Synchronization”, which was filed on Aug. 13, 2010.
Various embodiments are described above as being adapted: (1) to automatically provide shared access to a particular folder if certain criteria are met; and (2) if the criteria are not met, to require the link sharer to manual grant modification rights. However, it should be understood that, in certain embodiments, the granting process may either be entirely automatic or entirely manual.
In light of the above, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for the purposes of limitation.
This application is a continuation of and claims the benefit of U.S. application Ser. No. 13/723,396, filed on Dec. 21, 2012, entitled “GLOBAL LINK PROVIDING MODIFICATION RIGHTS TO A SHARED FOLDER”, which claims priority to U.S. Provisional Application No. 61/693,972, filed Aug. 28, 2012, entitled, “GLOBAL LINK PROVIDING MODIFICATION RIGHTS TO A SHARED FOLDER,” All of which are expressly incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
61693972 | Aug 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13723396 | Dec 2012 | US |
Child | 17893703 | US |