Abstract:
The speed at which files can be accessed from a remote location is increased by predicting the file access pattern based on a predictive model. The file access pattern describes the order in which blocks of data for a given file type are read by a given application. From aggregated data across many file accesses, one or more predictive models of access patterns can be built. A predictive model takes as input the application requesting the file access and the file type being requested, and outputs information describing an order of data blocks for transmitting the file to the requesting application. Accordingly, when a server receives a request for a file from an application, the server uses the predictive model to determine the order that the application is most likely to use the data blocks of the file. The data is then transmitted in that order to the client device.
Abstract:
A user of a content management system can store one or more content items at the user's account with the system. In some instances, the system can generate and present a preview of a content item of interest (e.g., a content item selected by the user). In addition to the preview of the content item, the system can generate and present a web address or other machine-readable code referring to (or otherwise associated with) the preview of the content item. Various embodiments of the present disclosure can enable the web address or other machine-readable code to be sharable and to provide access to the content item (or a copy thereof). For example, the user who is previewing the content item can share the web address of the preview with one or more other users. The one or more users can then access the content item via the web address.
Abstract:
Systems, methods, and computer-readable storage media for implementing globally unique identifiers (GUIDs) in a multi-user network-based content management environment, from the perspective of a server creating a GUID for a content item, and serving requests based on the GUID. A content management system can identify a content item at a location within the data storage. Each user of the content management system can be associated with a respective user account having an amount of storage space within the storage environment. The content management system can model a user account as a collection of content item objects and globally unique identifiers that are independent of a directory-based hierarchy of content items.
Abstract:
Systems, methods, and computer-readable storage media for ensuring data consistency and concurrency for globally unique identifiers (GUIDs) and associated content items via locking. A content management system configured to practice the method can receive, from a client device, a request to perform a content item operation in a storage environment that affects a GUID. Then the content management system can acquire a first mutex for a namespace associated with the content item operation, such as an application-level lock, and acquire a second mutex for the GUID, such as a row-level lock in a database table. After acquiring the locks, the content management system can perform the content item operation according the request, and update the GUID based on the content item operation. Then the content management system can release the mutexes and provide a confirmation to the client device in response to the request.
Abstract:
A user of a content management system can store one or more content items at the user's account with the system. In some instances, the system can generate and present a preview of a content item of interest (e.g., a content item selected by the user). In addition to the preview of the content item, the system can generate and present a web address or other machine-readable code referring to (or otherwise associated with) the preview of the content item. Various embodiments of the present disclosure can enable the web address or other machine-readable code to be sharable and to provide access to the content item (or a copy thereof). For example, the user who is previewing the content item can share the web address of the preview with one or more other users. The one or more users can then access the content item via the web address.
Abstract:
Systems, methods, and computer-readable storage media for encrypting communications containing or referencing globally unique identifiers to prevent unauthorized access to content item data, such as through spoofing or ancillary information leakage. An example system configured to practice the method identifies a communication, between a storage environment and a client device, associated with a globally unique identifier for a content item stored in at least one of the storage environment and the client device. The content item can be addressable via a globally unique identifier. Prior to transmitting the communication, the system can encrypt a portion of the communication containing the globally unique identifier using an encryption key based on a client-specific key and a secret version-specific key to yield an encrypted communication, and transmit the encrypted communication to the client device.
Abstract:
A method and system for preventing duplicate file uploads in a remote content management system is described. The user device receives a hash value list associated with the files stored in the remote content management system. The user device calculates a hash value associated with new files to be uploaded. The system then compares the hash value(s) associated with the new file(s) to be uploaded with the hash value list received from the remote file storage system. If the hash values of any of the new files to be uploaded match a hash value on the hash value list, then the system prevents the new files from being uploaded to the remote file storage system.
Abstract:
A notes system is presented with a content management system. The notes system manages creation and distribution of edits to notes to users sharing the notes. The notes are stored as a series of edits at the notes system. When an edit to a note is received, the edit is propagated to users subscribed to a note by a backend server responsible for managing the note. The shared users are notified through application servers associated with each shared user. The notes server includes various indices for searching the notes and allows notes to be searched quickly to organize viewing by a user of notes and identification of relevant material in the notes. The stored edits are used to display edits to a note to a user by replaying the accessed note to the user.
Abstract:
Systems, methods, and computer-readable storage media for implementing globally unique identifiers (GUIDs) in a multi-user network-based content management environment, from the perspective of a server creating a GUID for a content item, and serving requests based on the GUID. A content management system can identify a content item at a location within the data storage. Each user of the content management system can be associated with a respective user account having an amount of storage space within the storage environment. The content management system can model a user account as a collection of content item objects and globally unique identifiers that are independent of a directory-based hierarchy of content items.
Abstract:
A method and system for preventing duplicate file uploads in a remote content management system is described. The user device receives a hash value list associated with the files stored in the remote content management system. The user device calculates a hash value associated with new files to be uploaded. The system then compares the hash value(s) associated with the new file(s) to be uploaded with the hash value list received from the remote file storage system. If the hash values of any of the new files to be uploaded match a hash value on the hash value list, then the system prevents the new files from being uploaded to the remote file storage system.