Directory snapshots with searchable file paths
View Patent ↗The present technology pertains to an organization directory hosted by a synchronized content management system. The corporate directory can provide access to user accounts for all members of the organization to all content items in the organization directory on the respective file systems of the members' client devices. Members can reach any content item at the same path as other members relative to the organization directory root on their respective client device. In some embodiments novel access permissions are granted to maintain path consistency.
1. A non-transitory computer readable medium comprising instructions stored thereon, when executed the instructions are effective to cause a content management system to:
create a snapshot of a namespace at a point in time, wherein content items of the snapshot of the namespace are stored on a plurality of compressed pages, and wherein page names of the plurality of compressed pages include hash values derived from file paths of the content items stored in the plurality of compressed pages;
read page names of the plurality of compressed pages of the snapshot of the namespace, wherein the hash values, derived from the file paths of the content items stored in the plurality of compressed pages, are read while the plurality of compressed pages remain compressed; and
decompress a compressed page of the snapshot to extract a content item saved via the snapshot, the compressed page chosen for having a page name including an associated hash value, wherein the content item is associated with the file path from which the associated hash value is derived.
2. The non-transitory computer readable medium of claim 1 , comprising instructions to cause the content management system to:
extract a respective hash of each path stored in respective page names;
topologically sort a plurality of file paths; and
create a directory tree of the namespace.
3. The non-transitory computer readable medium of claim 2 , comprising instructions to cause the content management system to:
determine access permissions for a user account to access the plurality of file paths of the namespace; and
filter the plurality of file paths to identify only permitted file paths.
4. The non-transitory computer readable medium of claim 1 , comprising instructions to cause the content management system to:
identify a plurality of file paths based on their respective hash values included in the page names of the plurality of compressed pages, wherein the plurality of file paths is identified without decompressing any pages.
5. The non-transitory computer readable medium of claim 4 , comprising instructions to cause the content management system to:
reconstruct a directory tree for the namespace, based on the plurality of file paths derived from the respective hash values included in the page names of the plurality of compressed pages, without decompressing the plurality of compressed pages of the snapshot.
6. The non-transitory computer readable medium of claim 1 , comprising instructions to cause the content management system to:
determine the namespace is more active than a threshold active level, triggering the creating the snapshot of the namespace.
7. A method comprising:
creating a snapshot of a namespace at a point in time, wherein content items of the snapshot of the namespace are stored on a plurality of compressed pages, and wherein page names of the plurality of compressed pages include hash values derived from file paths of the content items stored in the plurality of compressed pages;
reading page names of the plurality of compressed pages of the snapshot of the namespace, wherein the hash vales, derived from the file paths of the content items stored in the plurality of compressed pages, are read while the plurality of compressed pages remain compressed; and
decompressing a compressed page of the snapshot to extract a content item saved via the snapshot, the compressed page chosen for having a page name including an associated hash value, wherein the content item is associated with the file path from which the associated hash value is derived.
8. The method of claim 7 , comprising:
extracting a respective hash of each path stored in respective page names;
topologically sorting a plurality of paths; and
creating a directory tree of the namespace.
9. The method of claim 8 , comprising:
determining access permissions for a user account to access the plurality of paths of the namespace; and
filtering the plurality of paths to identify only permitted file paths.
10. The method of claim 7 , further comprising
identifying a plurality of file paths based on their respective hash values included in the page names of the plurality of compressed pages, wherein the plurality of file paths is identified without decompressing any pages.
11. The method of claim 10 , further comprising
reconstructing a directory tree for the namespace, based on the plurality of file paths derived from the respective hash values included in the page names of the plurality of compressed pages, without decompressing the plurality of compressed pages of the snapshot.
12. The method of claim 7 , further comprising
determining the namespace is more active than a threshold active level, triggering the creating the snapshot of the namespace.
13. A content management system comprising:
one or more processors; and
at least one memory having instructions stored thereon, that when executed the instructions are effective to cause the one or more processors to:
create a snapshot of a namespace at a point in time, wherein content items of the snapshot of the namespace are stored on a plurality of compressed pages, and wherein page names of the plurality of compressed pages include hash values derived from file paths of the content items stored in the plurality of compressed pages;
read page names of the plurality of compressed pages of the snapshot of the namespace, wherein the hash values, derived from the file paths of the content items stored in the plurality of compressed pages, are read while the plurality of compressed pages remain compressed; and
decompress a compressed page of the snapshot to extract a content item saved via the snapshot, the compressed page chosen for having a page name including an associated hash value, wherein the content item is associated with the file path from which the associated hash value is derived.
14. The content management system of claim 13 , comprising instructions to cause the one or more processors to:
extract a respective hash of each path stored in respective page names;
topologically sort a plurality of paths; and
create a directory tree of the namespace.
15. The content management system of claim 14 , comprising instructions to cause the one or more processors to:
determine access permissions for a user account to access the plurality of paths of the namespace; and
filter the plurality of paths to identify only permitted file paths.
16. The content management system of claim 13 , comprising instructions to cause the one or more processors to:
identify a plurality of file paths based on their respective hash values included in the page names of the plurality of compressed pages, wherein the plurality of file paths is identified without decompressing any pages.
17. The content management system of claim 16 , comprising instructions to cause the one or more processors to:
reconstruct a directory tree for the namespace, based on the plurality of file paths derived from the respective hash values included in the page names of the plurality of compressed pages, without decompressing the plurality of compressed pages of the snapshot.
18. The content management system of claim 13 , comprising instructions to cause the one or more processors to:
determine the namespace is more active than a threshold active level, triggering the creating the snapshot of the namespace.