US 11,860,855 B1
Storage service supporting data transformations
Christopher Richard Jacques de Kadt, Seattle, WA (US); Tate Andrew Certain, Seattle, WA (US); Douglas Stewart Laurence, Mercer Island, WA (US); and Phil Simko, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Jun. 23, 2017, as Appl. No. 15/632,260.
Int. Cl. G06F 16/23 (2019.01); G06F 16/22 (2019.01)
CPC G06F 16/2379 (2019.01) [G06F 16/22 (2019.01)] 19 Claims
OG exemplary drawing
 
1. A system, comprising:
a plurality of physical storage devices configured to store data objects in storage buckets of an object-based storage virtualization service, for a plurality of clients of the object-based storage virtualization service; and
one or more computing devices configured to:
receive respective access policies for storage buckets allocated to particular clients of the plurality of clients of the object-based storage virtualization service, the storage buckets configured to store an arbitrary number of data objects, and each of the respective access policies specifying, for one or more respective storage buckets, at least,
a first type of transformation to be applied, based on a first destination location outside of a first one of the respective storage buckets, to a particular data object, wherein the particular data object is stored in the first respective storage bucket, wherein the first destination location for the particular data object is outside of a set of storage buckets associated with the particular client's account but is located in a storage bucket associated with a first other client's account inside the object-based storage virtualization service, and wherein application of the first type of transformation produces a first version of particular data that is to be made available at the first destination location, the first version of the particular data representing a transformed version of the particular data object transformed according to the first type of transformation; and
a second type of transformation to be applied, based on a second destination location outside of the first respective storage bucket, to the particular data object, wherein the second destination location for the particular data object is outside of the first respective storage bucket of the particular client and is located in a storage bucket associated with a second other client's account inside the object-based storage service or is located at a network location outside the object-based storage virtualization service, wherein application of the second type of transformation produces a second version of particular data that is to be made available at the second destination location, the second version of the particular data representing a transformed version of the particular data object transformed according to the second type of transformation,
wherein different ones of the access policies are client selected and are configured to specify, for different respective ones of the storage buckets, different ones of one or more of:
the first destination location outside of the respective storage bucket;
the first transformation to be applied to data objects being made available at the first destination location;
the second destination location outside of the respective storage bucket; and
the second transformation to be applied to data objects being made available at the second destination location; and
in response to an event requesting data representing the particular data object be made available at a particular destination location outside of the first or other respective storage bucket that is one of the first or second destination location, automatically cause, according to a respective one of the received access policies and based on the particular destination location, a transformation having a corresponding one of the first or second type of transformation specified by the respective access policy, to be performed on the particular data object to produce a corresponding one of the first or second version of the particular data subsequently made available at the particular destination location outside of the first or other respective storage bucket.