Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
First Claim
1. A method for storing objects in an object storage device, said method comprising:
- (a) receiving a uniform resource locator, state information and authorization information associated with a particular object to be stored in the object storage device;
(b) combining the uniform resource locator, the state information and the authorization information to obtain an object identification string;
(c) dividing the object identification string into a plurality of individual directories, the individual directories form a directory path to a resulting directory where the particular object is to be stored; and
(d) storing at least one version of the particular object in the resulting directory in the object storage device.
4 Assignments
0 Petitions
Accused Products
Abstract
Techniques for storing objects (e.g., images) in and retrieving objects from a storage device (e.g., image store) in a rapid and efficient manner are disclosed. More particularly, the techniques include: storage of an object in and retrieval of an object from the storage device with reference to an object locator together with state and permission information, use of a directory structure of a file system to efficiently provide database structure for storage of the objects, storage and retrieval of object states as attributes of associated files in the file system, storage and retrieval of multiple versions of objects, and multi-threaded management of the storage device.
265 Citations
23 Claims
-
1. A method for storing objects in an object storage device, said method comprising:
-
(a) receiving a uniform resource locator, state information and authorization information associated with a particular object to be stored in the object storage device;
(b) combining the uniform resource locator, the state information and the authorization information to obtain an object identification string;
(c) dividing the object identification string into a plurality of individual directories, the individual directories form a directory path to a resulting directory where the particular object is to be stored; and
(d) storing at least one version of the particular object in the resulting directory in the object storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
(d1) retrieving a first version of the particular object from a remote server; and
(d2) storing the first version of the particular object in the resulting directory in the object storage device.
-
-
3. A method as recited in claim 2, wherein said method further comprises:
-
(e) producing a second version on the particular object by reducing the size of the first version of the particular object; and
(f) subsequently storing the second version of the particular object in the resulting directory in the object storage device.
-
-
4. A method as recited in claim 3, wherein said producing (e) is performed concurrently with said storing (d2).
-
5. A method as recited in claim 1, wherein the object storage device is a database, at least a part of the database being a directory structure of a file system used with the object storage device.
-
6. A method as recited in claim 1, wherein the object storage device is a disk drive.
-
7. A method as recited in claim 1, wherein the state information and the authorization information are found in at least one of a HTTP request and a HTTP response.
-
8. A method as recited in claim 1, wherein said combining (b) comprises concatenating the uniform resource locator, the state information and the authorization information to obtain the object identification string.
-
9. A method as recited in claim 1,
wherein the object identification string includes characters, and wherein said dividing (c) comprises: -
(c1) inserting a directory character into the object identification string after each occurrence of a predetermined number of the characters in the object identification string to produce the individual directories, and (c2) replacing unpermitted characters in the object identification string with predetermined characters.
-
-
10. A method as recited in claim 1, wherein said storing (d) operates to store a plurality of object files in the resulting directory within the object storage device, each of the object files is a file representing a different version of the particular object.
-
11. A method as recited in claim 8, wherein one of the versions is an accelerated version of the particular object.
-
12. A method for storing an image in an image storage device, said method comprising:
-
(a) receiving URL and associated HTTP Request and HTTP Response information;
(b) parsing the HTTP Request information and the HTTP Response information to obtain cookies and authorizations contained therein;
(c) merging the cookies if related cookies are contained in the HTTP Request and the HTTP Response;
(d) forming an image identification string by combining the URL, the merged cookies and the authorizations;
(e) hashing the image identification string to produce a hash directory;
(f) replacing unpermitted characters in the image identification string with predetermined replacements;
(g) dividing the image identification string to form a directory path having a series of individual directories;
(h) forming the individual directories of the directory path in the image storage device to the extent not already present; and
(i) storing at least one file in a resulting directory identified by the directory path. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
(j) setting a state of the at least one file formed by said forming (i) to an initial state.
-
-
14. A method as recited in claim 13, wherein said method further comprises:
-
(k) subsequently retrieving an image associated with the URL from a remote server;
(l) storing a first version of the image in the file in the resulting directory within the image storage device; and
(m) thereafter updating the state of the at least one file.
-
-
15. A method as recited in claim 13, wherein said updating (m) sets the state of the at least one file to a ready state.
-
16. A method as recited in claim 12, wherein said forming (d) of the image identification string comprises concatenating the URL, the merged cookies and the authorizations.
-
17. A method as recited in claim 12,
wherein the object identification string includes characters, and wherein said dividing (g) comprises inserting a directory character into the image identification string after each occurrence of a predetermined number of the characters in the image identification string to produce the series of individual directories. -
18. A method as recited in claim 12, wherein said forming (i) operates to store a plurality of initial files in the resulting directory, each of the initial files is a file where a different version of the particular image is to be eventually stored in the image storage device.
-
19. A method as recited in claim 18, wherein one of the versions is an accelerated version of the particular object.
-
20. A method for storing a plurality of image files to a digital storage unit for subsequent retrieval, said method comprising the acts of:
-
(a) identifying an image file to be stored to the digital storage unit, the identified image file being identified by a combination of a resource locator and an associated data string;
(b) forming a directory path into the digital storage unit from the combination of the resource locator and an associated data string; and
(c) storing the image file in the digital storage unit at a directory indicated by the directory path. - View Dependent Claims (21, 22, 23)
(d) thereafter storing other image files related to the image file in the digital storage unit at the directory indicated by the directory path.
-
-
22. A method as recited in claim 21, wherein the other image files are the images related to the image file include at least one other image file that pertains to the same image but has a different file size.
-
23. A method as recited in claim 20, wherein the associated data string comprises state information.
Specification