Users may desire to easily send and receive digital content to and from one another as well as to easily store digital content that they receive from other users. Sending and storing digital content, particularly large amounts of digital content containing a plurality of files, can be difficult and time-consuming. Accordingly, there is currently a need for improved systems and methods for sending, receiving, and storing digital content, particularly in the context of content management systems.
A computer system according to various embodiments may include at least one processor and may be configured for receiving a first request, from a first user, to share digital content, such as digital files or folders, from the first user's account within a content management system with a second user having an account within the content management system. In response to receiving the request, the system may generate a link that may be activated by the second user to initiate receiving the digital content from the first user's account. If the second user activates the link, the system automatically associates the digital content with the second user's account within the content management system.
A computer-implemented method, according to various embodiments, includes a step of receiving a request to generate a digital content sharing link to digital content. In various embodiments, the digital content may be associated with a first account within a content management system. In response to receiving the request, the method may further include generating the digital content sharing link. In particular embodiments, the method may include receiving an indication that the digital content sharing link has been activated. In response to receiving the indication, the method may include the step of displaying a representation of the digital content along with a display element that may be activated to send a request to associate the digital content with a second account within the content management system. In particular embodiments, the method may further include the step of receiving an indication that the display element has been activated. The method may further include the step of enabling the association of the digital content with the second account in response to receiving the indication that the display element has been activated.
Various embodiments of a computer system for adding digital content to user accounts in content management systems 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 now will be described more fully hereinafter with reference to the accompanying drawings. It should be understood that the invention 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 invention to those skilled in the art. Like numbers refer to like elements throughout.
Overview
Computer systems and methods, according to various embodiments, may allow a user (e.g., a content sharer, or “sharer”) to send a link (e.g., a URL) to another user (e.g., a content recipient, or “recipient”) that the recipient may use to view a listing of digital content (e.g., such as one or more particular files, folders of files, or nested files) shared by the content sharer. In particular embodiments, this may be done within the context of an on-line content management system such as the Dropbox service of Dropbox, Inc. of San Francisco, Calif. by, for example, using a link sharing feature. An example of a suitable link sharing system is described in U.S. patent application Ser. No. 13/217,944, entitled “File Sharing Via Link Generation,” which was filed on Aug. 25, 2011, and which is hereby incorporated by reference in its entirety.
In particular embodiments, a content sharer may send a link to a content recipient by, for example: (1) copying the link from a URL box in the content sharer's web browser; (2) pasting the link into an e-mail or text message; and (3) sending the e-mail or text message to the content recipient. Alternatively, the content sharer may share the link in any other manner, such as by posting the link to a web site, copying the link to a file, sending the link to a recipient via an electronic message generated by the content management system, or verbally conveying the link to the content recipient. The content recipient may then view a listing of the digital content (e.g., files or folders) in his or her web browser by, for example, selecting the link or by manually pasting or typing the link into their browser. The content recipient may then access the digital content by selecting the digital content from the listing (e.g., by “clicking” on the digital content).
In various embodiments, the content recipient may then add the digital content to an account associated with the content recipient on a content management system (e.g., a synched or non-synched content management system). In particular embodiments, the content management system is the same content management system from which the content sharer shared digital content. To add the digital content to their account, the content recipient may, for example, select a suitable indicium when viewing the listing of digital content. In particular embodiments, the system may be configured to add the digital content to the content recipient's account by creating an entry in a server-side file journal associated with the content recipient's account, where the entry includes one or more file reference strings associated with the digital content. In particular embodiments, the addition of the one or more file reference strings to the content recipient's server-side file journal may add the digital content to the content recipient's account without creating a new copy of the digital content on any server associated with the user's account or the content management system. Rather, the system may add the digital content to the content recipient's account by providing access to the digital content to the content recipient in the digital content's existing storage location (e.g., on one or more servers associated with the content management system, etc.).
Exemplary System Platform
An exemplary platform for implementing various embodiments will now be discussed. Referring to
Client Devices
In various embodiments, each client device 10 may have a content storage service client application 12A and 12B (collectively 12) through which respective digital content (e.g., such as files 14A and 14B) of that client may be specified for storage in content management server 20. It is noted that, in some embodiments, synchronized copies of files 14A and 14B may be kept on both content management server 20 and each respective client device 10, and the synchronization of the copies may be coordinated by content management server 20. In some embodiments, client devices 10 may provide a file-browser type interface (not shown) for directly manipulating the digital content stored on content management server 20 without maintaining a local copy, such as on a mobile device such as a smartphone or tablet computer. Client devices 10 may also include web browser 16A and 16B (collectively 16) for retrieving and presenting web pages and other content from webservers. 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 content management server 20 instead of using content storage service client application 12.
Still referring to
Content Management Server
Content management server 20 stores digital content and manages access to that digital content using client devices 10. Content management server 20 and its components may be implemented using any appropriate hardware and software for performing digital content serving, storage and retrieval functions. For purposes of clarity and ease of description,
Interface Module
As shown in
As an alternative or supplement to the client-side file-explorer interface, 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 digital content stored on content management server 20. In this way, the user may be able to directly manipulate digital content stored on content management server 20.
Data Store
In various embodiments, data store 28 may store pieces of digital content (e.g., such as files) such as those uploaded using client devices 10. In the embodiment illustrated in
Account Module
Account module 24 may track digital content stored in data store 28 and entries in the server-side file journal for each piece of digital content. As users grant content access permissions to other users, account module 24 may update 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. For example, a user may want to share all their files between their desktop computer and mobile computing device (e.g., tablet computer, smart phone, etc.). To make such a sharing arrangement seamless to the user, the user's single account on content storage server system 20 may be associated with each of the user's respective client devices by creating a new file reference string for each respective device and storing the file reference string in the user-associated server-side file journal. In this way, system 5 may be able to determine which client device is requesting retrieval of the file. Additionally, in some embodiments where a copy of the digital content is stored on content storage server system 20 and locally on each client device, a separate client-side file journal may be maintained on each client device to allow synchronization between and among the various client devices and content storage server system 20. In some embodiments, an application running on client device 10 manages synchronization of the client-side file journal with the server-side file journal in order to maintain synchronized local stored files with the server stored files.
Digital Content Storage Configuration
Referring to
In various embodiments, content management server 20 may also be configured to create a unique file reference string 46 for each file by concatenating file segment identifiers 44A-44E. User identifier XXXXXX and file reference string 46 may be placed in a file journal entry 48. 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
Content Storage Server System—Sharing Module
In various embodiments, a user wishing to share digital content (e.g., a link sharer) may select any, or any combination of, a single file, multiple files within a folder, an empty folder, multiple folders, or multiple files across multiple folders (individually and collectively a file set) to be shared with one or more other users. It should be understood that when multiple files across multiple folders are shared as a file set, that file set may define a virtual folder for those files.
Referring to
Link generation module 32 may be configured to generate a link corresponding to the file set specified by the user. In one embodiment, upon receiving a request to share a particular file set, link generation module 32 may generate the unique file set descriptor of the shared file set and a unique file location path or URL that serves as the link. Sharing module 26 may save an association of the file set descriptor and the file location path or URL to data store 28. In some embodiments, the generated file sharing link may be independent of the file set descriptor so that the file set descriptor cannot be inferred from the file sharing link, and vice versa. An independent file set descriptor and file location path or URL may prevent 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.pdf, where the URL component 2608u2mnco may not be able to be reverse-engineered, and accordingly create an entry <3D8B99, https://www.service.com/s/2608u2mnco/BBQ.pdf> in data store 28. In one embodiment, the generated link may further be shortened. In some embodiments, the generated URL https://www.service.com/s/2608u2mnco/BBQ.pdf can further be shortened using a link-shortening service to a shorter URL (e.g., http://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 file set can be directly associated with the shortened link rather than with an intermediate, longer generated link.
In still other embodiments, a user may generate multiple different links to the same file set. Thus, the user may more selectively control access to the file set 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 revoke certain users' access to the file set while continuing to permit other users to access the file set (e.g., by deactivating certain users' links to the file set while maintaining other users' links in active status).
Moreover, since a file set link may be versatile, in some embodiments, the system may include reference to a particular relevant application, or applications, in a link by embedding an application identifier in the generated link. As an example, the generated link for a given file set could be the URL https://www.service.com?app=1ps3q/s/2608u2mnco/BBQ.pdf, which specifies (via the portion “app=1ps3q”) that some application uniquely associated with the identifier “ips3q” (e.g., Microsoft Word or Microsoft Visio) should be used to view the file set. Alternatively, the association between the link and the application or application plug-in may be made as an entry in the data store 28 itself, rather than by including an application identifier in the link. For example, in various embodiments, a user may generate a first link to a file set that specifies use of a first application for viewing the file set, and a second link that specifies use of a second application for viewing the file set. In this example, the data store 28 may in turn contain two corresponding entries: i.e., <file set identifier, first link identifier, first application identifier> and <file set identifier, second link identifier, second application identifier>. In another embodiment, link-based sharing module 26 may be configured to select the proper applications or application plug-ins to use in the file browser, e.g., based on the types of files in the file set. The link-based sharing module 26 may also allow users to specify which application should open a particular file or set of files when the files are accessed via a particular link.
Exemplary System Operation—Digital Content Adding Module
The system continues, at Step 404, by, in response to receiving the request, enabling the association of the digital content with the account (e.g., by adding the digital content to the account). In various embodiments, the system may be configured to add the digital content to the account by associating the digital content with the account of the user from whom the system received the request at Step 402. In particular embodiments, the system may be configured to add the digital content to the user's account by adding the one or more file reference strings associated with the digital content to a server-side file journal associated with the user (e.g., associated with the user's account). In various embodiments, the system may be configured to receive account information (e.g., account information associated with the account associated with the user) and use the account information to enable the association of the digital content with the account.
The system may, once the digital content has been added to a user's account, be configured to provide access to the digital content to that user through the user's account within the content management system (e.g., the user may be able to access the digital content through their user account rather than through the shared link from which the user originally received access to the file). In various embodiments, the system may be configured to add the digital content to the user's account without downloading, uploading, copying, or otherwise reproducing the digital content. The system may, in such embodiments, associate the digital content with the user's account based on the digital content's current storage location (e.g., on one or more servers associated with the content management system).
Exemplary User Experience
After activating link 502, the system may display a screen display such as the screen display shown in
If the user wishes to add the files 602 in this “Camera Uploads” folder to the user's account, the user may select (e.g., click on) “Download” display element 604.
In various embodiments, the system may prompt the user to login to the user's account in response to the user selecting “Add to my Dropbox” display element 608. In particular embodiments, the system may then be configured to add the files to the user's account by adding suitable file reference strings associated with files 602 to a server-side file journal associated with the user's account within the synced content management system. In such embodiments, as discussed above, the system may provide access to files 602 to the user through the user's synced content management system account without having to download or otherwise copy or save files 602. Rather, the system may provide access to the user through the user's account by retrieving files 602 based on the files' file reference strings from their existing storage location (e.g. or locations) on one or more servers associated with the synced content management system.
Having the benefit of the teachings presented in the foregoing descriptions and associated drawings, one of skill in the art will recognize many modifications and other embodiments of the invention. For example, although various embodiments are described above are discussed as being implemented within the context of a synched, cloud-based content management system, it should be understood that some or all of the techniques described above may be employed within the context of other systems, such as non-synched cloud-based content management systems and other file sharing systems. 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 U.S. patent application Ser. No. 14/455,417, filed Aug. 8, 2014, which is a continuation of U.S. patent application Ser. No. 13/776,275, filed Feb. 25, 2013, now U.S. Pat. No. 8,838,681, which claims the benefit of and priority to U.S. Provisional Patent Application No. 61/745,519, filed on Dec. 21, 2012; the contents of each of the above patent applications are hereby expressly incorporated by reference in their entirety for all purposes herein.
Number | Name | Date | Kind |
---|---|---|---|
6684212 | Day et al. | Jan 2004 | B1 |
6687741 | Ramaley et al. | Feb 2004 | B1 |
6988138 | Alcorn et al. | Jan 2006 | B1 |
7177426 | Dube | Feb 2007 | B1 |
7206806 | Pineau | Apr 2007 | B2 |
7260646 | Stefanik et al. | Aug 2007 | B1 |
7460130 | Salganicoff | Dec 2008 | B2 |
7676526 | Beloussov et al. | Mar 2010 | B1 |
7730113 | Payette et al. | Jun 2010 | B1 |
7756892 | Levy | Jul 2010 | B2 |
7822793 | Rawat et al. | Oct 2010 | B2 |
7970850 | Callanan et al. | Jun 2011 | B1 |
8065424 | Foresti et al. | Nov 2011 | B2 |
8140506 | Pennington | Mar 2012 | B2 |
8194940 | Kiyohara et al. | Jun 2012 | B1 |
8561205 | McCurdy | Oct 2013 | B2 |
8584259 | Le Chevalier et al. | Nov 2013 | B2 |
8707404 | Sorotokin et al. | Apr 2014 | B2 |
8732853 | Byrne | May 2014 | B1 |
8756656 | Hartmann | Jun 2014 | B1 |
8805966 | Raciborski | Aug 2014 | B2 |
8824751 | Wise | Sep 2014 | B2 |
8838417 | Rikkola et al. | Sep 2014 | B2 |
8838681 | Motes | Sep 2014 | B2 |
8917631 | Zivkovic | Dec 2014 | B2 |
8949607 | Boesgaard Soerensen | Feb 2015 | B2 |
9026033 | Khedouri | May 2015 | B2 |
9049176 | Ferdowsi | Jun 2015 | B2 |
9075954 | Kirigin | Jul 2015 | B2 |
9270663 | Kravitz | Feb 2016 | B2 |
9304667 | Petitt, Jr. | Apr 2016 | B2 |
9319400 | Byrne | Apr 2016 | B2 |
20010056463 | Grady et al. | Dec 2001 | A1 |
20020073443 | Heifetz et al. | Jun 2002 | A1 |
20030014477 | Oppenheimer et al. | Jan 2003 | A1 |
20030097410 | Atkins et al. | May 2003 | A1 |
20030120729 | Kim et al. | Jun 2003 | A1 |
20030152904 | Doty | Aug 2003 | A1 |
20030227487 | Hugh | Dec 2003 | A1 |
20040025025 | Venkatesan et al. | Feb 2004 | A1 |
20040044746 | Matsusaka | Mar 2004 | A1 |
20050076030 | Hada et al. | Apr 2005 | A1 |
20050091289 | Shappell et al. | Apr 2005 | A1 |
20050226166 | Agrawal et al. | Oct 2005 | A1 |
20050240428 | Gabrick et al. | Oct 2005 | A1 |
20060031489 | Marcjan | Feb 2006 | A1 |
20060061599 | Yu et al. | Mar 2006 | A1 |
20060133407 | Kuisma | Jun 2006 | A1 |
20060230030 | Volpa et al. | Oct 2006 | A1 |
20070016613 | Foresti et al. | Jan 2007 | A1 |
20070118514 | Mariappan | May 2007 | A1 |
20070156434 | Martin et al. | Jul 2007 | A1 |
20070174341 | Saripalli et al. | Jul 2007 | A1 |
20070203917 | Du et al. | Aug 2007 | A1 |
20070214169 | Audet et al. | Sep 2007 | A1 |
20070233647 | Rawat et al. | Oct 2007 | A1 |
20070239760 | Simon | Oct 2007 | A1 |
20070260747 | Samzelius et al. | Nov 2007 | A1 |
20070279379 | Stefanik et al. | Dec 2007 | A1 |
20070289022 | Wittkotter | Dec 2007 | A1 |
20080091725 | Hwang et al. | Apr 2008 | A1 |
20080109910 | Day et al. | May 2008 | A1 |
20080177994 | Mayer | Jul 2008 | A1 |
20080216139 | Liwerant et al. | Sep 2008 | A1 |
20080244038 | Martinez | Oct 2008 | A1 |
20080244721 | Barrus et al. | Oct 2008 | A1 |
20090216569 | Bonev et al. | Aug 2009 | A1 |
20090287715 | Chi et al. | Nov 2009 | A1 |
20090300723 | Nemoy et al. | Dec 2009 | A1 |
20100011431 | Cynkin et al. | Jan 2010 | A1 |
20100063961 | Guiheneuf et al. | Mar 2010 | A1 |
20100185698 | Lee et al. | Jul 2010 | A1 |
20100211998 | Soelberg et al. | Aug 2010 | A1 |
20100274864 | Jalili | Oct 2010 | A1 |
20110035503 | Zaid et al. | Feb 2011 | A1 |
20110137986 | Wolf | Jun 2011 | A1 |
20110154456 | Machani | Jun 2011 | A1 |
20110167159 | Bethlehem et al. | Jul 2011 | A1 |
20110264532 | Chan et al. | Oct 2011 | A1 |
20110264768 | Walker et al. | Oct 2011 | A1 |
20110276638 | Errico et al. | Nov 2011 | A1 |
20110287748 | Angel et al. | Nov 2011 | A1 |
20120127328 | Winbush, III | May 2012 | A1 |
20120131005 | Shen et al. | May 2012 | A1 |
20120151002 | Lin | Jun 2012 | A1 |
20120197980 | Terleski et al. | Aug 2012 | A1 |
20120209892 | MacAskill et al. | Aug 2012 | A1 |
20120278404 | Meisels et al. | Nov 2012 | A1 |
20120290686 | Anchan | Nov 2012 | A1 |
20120303489 | Robb | Nov 2012 | A1 |
20120324121 | Carr | Dec 2012 | A1 |
20130013560 | Goldberg et al. | Jan 2013 | A1 |
20130013561 | Chan et al. | Jan 2013 | A1 |
20130018960 | Knysz et al. | Jan 2013 | A1 |
20130091026 | Deng et al. | Apr 2013 | A1 |
20130174272 | Chevalier et al. | Jul 2013 | A1 |
20130332854 | Roman | Dec 2013 | A1 |
20130332856 | Sanders et al. | Dec 2013 | A1 |
20140067865 | Kirigin | Mar 2014 | A1 |
20140067929 | Kirigin | Mar 2014 | A1 |
20140215568 | Kirigin | Jul 2014 | A1 |
20140289868 | Byrne et al. | Sep 2014 | A1 |
Entry |
---|
International Search Report and Written Opinion dated Apr. 23, 2012 for PCT Application No. PCT/US2011/041531, filed Jun. 22, 2011, titled, “File Sharing Via Link Generation,” to Andrew Houston et al., 6 pages. |
Number | Date | Country | |
---|---|---|---|
20160173596 A1 | Jun 2016 | US |
Number | Date | Country | |
---|---|---|---|
61745519 | Dec 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14455417 | Aug 2014 | US |
Child | 15050793 | US | |
Parent | 13776275 | Feb 2013 | US |
Child | 14455417 | US |