Storage interface for synchronizing content
Abstract
An interface of a content management system manages storage and access of content on the system. For example, after receiving, from a client, a request to download a content item, the interface determines whether the request includes a valid token. If so, the interface sends a content item request to a storage service, retrieves the content item, and sends the content item to the client. Otherwise, the interface sends an authorization request to an authorization service, an authentication request to an authentication service, and a content item request to the storage service. Based on the requests, the interface determines whether the content item is available in storage and whether the client is authorized to access the content item. When the content item is available in storage and the client is authorized to access the content item, the interface retrieves the content item and sends the content item to the client.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprising:
receiving, via a content storage interface of a content management system, from a client device, a request to download a content item from the content management system, wherein the content storage interface manages access to the content item by the client device and transmission of the content item to the client device; sending, by the content storage interface, an authorization request to an authorization service, an authentication request including a host key associated with the client device to an authentication service; receiving a response from the authentication service indicating that a host or account associated with the client device is authenticated, the response including at least one of a host identifier corresponding to the host key or an account identifier corresponding to the host key; and receiving a response from the authorization service indicating that the host or account is authorized.
2 . The method of claim 1 comprising:
determining whether the content item is available in a storage at the content management system;
when it is determined that the content item is available in storage at the content management system and that the client device is authenticated and authorized to access the content item, retrieving the content item from storage at the content management system; and
sending the content item to the client device.
3 . The method of claim 1 , comprising:
sending a request to determine whether the content item is available in a storage of a storage service, wherein the request includes a data identifying the content item, wherein the storage service comprises a storage index identifying content items available in a storage at the content management system.
4 . The method of claim 3 , wherein the data identifying the content item comprises at least one of a content item identifier, a fingerprint associated with the content item, metadata associated with the content item, or one or more hash values associated with the content item, and wherein determining whether the content item is available in storage comprises:
receiving a response to the request to determine whether the content item is available in the storage, the response comprising a result of a search of the content item in the storage index, the search being based on the data identifying the content item; and based on the result of the search, determining whether the content item is available in the storage at the content management system.
5 . The method of claim 1 , further comprising:
after the receiving the response from the authorization service, generating an authorization token for the client device, the authorization token including access permissions associated with the content item and the client device and a cryptographic signature, wherein the authorization token is configured to be submitted by the client device with a future request to access the content item, and the authorization token informs a content storage service that the client device is authorized to access the content item from a storage.
6 . The method of claim 2 , further comprising:
prior to determining whether the content item is available in storage at the content management system, sending a message to the client device indicating whether the client device is authenticated or authorized to access the content item.
7 . The method of claim 2 , further comprising:
prior to sending the content item from storage at the content management system, sending, to the client device, a message indicating whether the client device is authenticated or authorized to access the content item.
8 . A non-transitory computer readable medium comprising instructions, the instructions, when executed by one or more processors, cause a content storage interface of a content management system to:
receive, from a client device by the content storage interface, a request to upload a content item to the content management system wherein the content storage interface manages access to the content item by the client device and transmission of the content item to the client device; send, by the content storage interface, an authorization request to an authorization service, an authentication request including a host key associated with the client device to an authentication service; receive a response from the authentication service indicating that a host or account associated with the client device is authenticated, the response including at least one of a host identifier corresponding to the host key or an account identifier corresponding to the host key; receive a response from the authorization service indicating that the host or account is authorized; and after determining that the client device is authorized to upload the content item, send, to a storage associated with the content management system, a first instruction to store the content item.
9 . The non-transitory computer readable medium of claim 8 , wherein receiving the request to upload the content item comprises:
sequentially receiving portions of the content item from the client device.
10 . The non-transitory computer readable medium of claim 8 , storing instructions that, when executed by the one or more processors, cause the content management system to:
receive a first portion of the content item from the client device; while receiving a second portion of the content item from the client device, apply one or more operations on the first portion of the content item, the one or more operations comprising at least one of a compression operation, an encryption operation, or a decompression operation, wherein the one or more operations are selected based on an upload speed associated with the client device; and after receiving the second portion of the content item from the client device, apply the one or more operations on the second portion of the content item.
11 . The non-transitory computer readable medium of claim 10 , storing instructions that, when executed by the one or more processors, cause the content management system to:
after receiving all of the portions of the content item, send all of the portions of the content item to the storage associated with the content management system along with the first instruction to store the content item.
12 . The non-transitory computer readable medium of claim 10 , wherein the first instruction comprises one or more store operations associated with the portions of the content item, and wherein the portions of the content item are sent to the storage after applying the one or more operations on the portions of the content item.
13 . The non-transitory computer readable medium of claim 8 , storing instructions that, when executed by the one or more processors, cause the content management system to:
after the receiving the response from the authorization service, generating an authorization token for the client device, the authorization token including access permissions associated with the content item and the client device and a cryptographic signature, wherein the authorization token is configured to be submitted by the client device with a future request to access the content item, and the authorization token informs the content storage service that the client device is authorized to access the content item from the storage.
14 . A content management system comprising:
one or more processors; and at least one non-transitory computer readable medium having instructions stored therein which, when executed by the one or more processors, cause the content management system to: receiving, via a content storage interface of a content management system, from a client device, a request to download a content item from the content management system, wherein the content storage interface manages access to the content item by the client device and transmission of the content item to the client device; sending, by the content storage interface, an authorization request to an authorization service, an authentication request including a host key associated with the client device to an authentication service; receiving a response from the authentication service indicating that a host or account associated with the client device is authenticated, the response including at least one of a host identifier corresponding to the host key or an account identifier corresponding to the host key; and
receiving a response from the authorization service indicating that the host or account is authorized.
15 . The content management system of claim 14 , wherein the instructions further cause the content management system to:
determine whether the content item is available in storage at the content management system; when it is determined that the content item is available in storage at the content management system and that the client device is authorized to access the content item, retrieve the content item from storage at the content management system; and send the content item to the client device.
16 . The content management system of claim 14 , wherein the instructions further cause the content management system to:
after the receipt of the response from the authorization service, generate an authorization token for the client device, the authorization token including access permissions associated with the content item and the client device and a cryptographic signature, wherein the authorization token is configured to be submitted by the client device with a future request to access the content item, and the authorization token informs the content storage service that the client device is authorized to access the content item from the storage.
17 . The content management system of claim 15 , wherein the instructions further cause the content management system to:
prior to the determination whether the content item is available in storage at the content management system, send a message to the client device indicating whether the client device is authenticated or authorized to access the content item.
18 . The content management system of claim 15 , wherein the instructions further cause the content management system to:
prior to sending the content item from storage at the content management system, sending, to the client device, a message indicating whether the client device is authenticated or authorized to access the content item.
19 . The content management system of claim 14 , wherein the content item is a plurality of content items.
20 . The content management system of claim 14 , wherein the instructions further cause the content management system to:
receive a request to synchronize a folder at a file journal interface; determine by the file journal interface that the client device is authorized to access the folder, wherein the folder contains the content item; determine, by the file journal interface that the content item has been updated since a prior synchronization; and return a valid authorization token that includes access permissions for the content item contained with the folder.Join the waitlist — get patent alerts
Track US2021182311A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.