Reference documentation and code samples for the Cloud Storage Client class Lifecycle.
Object Lifecycle Management supports common use cases like setting a Time to Live (TTL) for objects, archiving older versions of objects, or "downgrading" storage classes of objects to help manage costs.
This builder does not execute any network requests and is intended to be used in combination with either Google\Cloud\Storage\Google\Cloud\Storage\StorageClient::createBucket() or Google\Cloud\Storage\Google\Cloud\Storage\Bucket::update().
Example:
// Access a builder preconfigured with rules already existing on a given
// bucket.
use Google\Cloud\Storage\StorageClient;
$storage = new StorageClient();
$bucket = $storage->bucket('my-bucket');
$lifecycle = $bucket->currentLifecycle();
// Or get a fresh builder by using the static factory method.
use Google\Cloud\Storage\Bucket;
$lifecycle = Bucket::lifecycle();
Methods
__construct
Parameter | |
---|---|
Name | Description |
lifecycle |
array
[optional] A lifecycle configuration. Please see here for the expected structure. |
addDeleteRule
Adds an Object Lifecycle Delete Rule.
Example:
$lifecycle->addDeleteRule([
'age' => 50,
'isLive' => true
]);
Parameters | |
---|---|
Name | Description |
condition |
array
The condition(s) where the rule will apply. |
↳ age |
int
Age of an object (in days). This condition is satisfied when an object reaches the specified age. |
↳ createdBefore |
DateTimeInterface|string
This condition is satisfied when an object is created before midnight of the specified date in UTC. If a string is given, it must be a date in RFC 3339 format with only the date part (for instance, "2013-01-15"). |
↳ customTimeBefore |
DateTimeInterface|string
This condition is satisfied when the custom time on an object is before this date in UTC. If a string is given, it must be a date in RFC 3339 format with only the date part (for instance, "2013-01-15"). |
↳ daysSinceCustomTime |
int
Number of days elapsed since the user-specified timestamp set on an object. The condition is satisfied if the days elapsed is at least this number. If no custom timestamp is specified on an object, the condition does not apply. |
↳ daysSinceNoncurrentTime |
int
Number of days elapsed since the noncurrent timestamp of an object. The condition is satisfied if the days elapsed is at least this number. This condition is relevant only for versioned objects. The value of the field must be a nonnegative integer. If it's zero, the object version will become eligible for Lifecycle action as soon as it becomes noncurrent. |
↳ isLive |
bool
Relevant only for versioned objects. If the value is |
↳ matchesStorageClass |
string[]
Objects having any of the storage classes specified by this condition will be matched. Values include |
↳ noncurrentTimeBefore |
DateTimeInterface|string
This condition is satisfied when the noncurrent time on an object is before this timestamp. This condition is relevant only for versioned objects. If a string is given, it must be a date in RFC 3339 format with only the date part (for instance, "2013-01-15"). |
↳ numNewerVersions |
int
Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object. |
↳ matchesPrefix |
string[]
Objects having names which start with values specified by this condition will be matched. |
↳ matchesSuffix |
string[]
Objects having names which end with values specified by this condition will be matched. |
Returns | |
---|---|
Type | Description |
Google\Cloud\Storage\Lifecycle |
addSetStorageClassRule
Adds an Object Lifecycle Set Storage Class Rule.
Example:
$lifecycle->addSetStorageClassRule('COLDLINE', [
'age' => 50,
'isLive' => true
]);
// Using customTimeBefore rule with an object's custom time setting.
$lifecycle->addSetStorageClassRule('NEARLINE', [
'customTimeBefore' => (new \DateTime())->add(
\DateInterval::createFromDateString('+10 days')
)
]);
$bucket->update(['lifecycle' => $lifecycle]);
$object = $bucket->object($objectName);
$object->update([
'metadata' => [
'customTime' => '2020-08-17'
]
]);
Parameters | |
---|---|
Name | Description |
storageClass |
string
The target storage class. Values include
|
condition |
array
The condition(s) where the rule will apply. |
↳ age |
int
Age of an object (in days). This condition is satisfied when an object reaches the specified age. |
↳ createdBefore |
DateTimeInterface|string
This condition is satisfied when an object is created before midnight of the specified date in UTC. If a string is given, it must be a date in RFC 3339 format with only the date part (for instance, "2013-01-15"). |
↳ customTimeBefore |
DateTimeInterface|string
This condition is satisfied when the custom time on an object is before this date in UTC. If a string is given, it must be a date in RFC 3339 format with only the date part (for instance, "2013-01-15"). |
↳ daysSinceCustomTime |
int
Number of days elapsed since the user-specified timestamp set on an object. The condition is satisfied if the days elapsed is at least this number. If no custom timestamp is specified on an object, the condition does not apply. |
↳ daysSinceNoncurrentTime |
int
Number of days elapsed since the noncurrent timestamp of an object. The condition is satisfied if the days elapsed is at least this number. This condition is relevant only for versioned objects. The value of the field must be a nonnegative integer. If it's zero, the object version will become eligible for Lifecycle action as soon as it becomes noncurrent. |
↳ isLive |
bool
Relevant only for versioned objects. If the value is |
↳ matchesStorageClass |
string[]
Objects having any of the storage classes specified by this condition will be matched. Values include |
↳ noncurrentTimeBefore |
DateTimeInterface|string
This condition is satisfied when the noncurrent time on an object is before this timestamp. This condition is relevant only for versioned objects. If a string is given, it must be a date in RFC 3339 format with only the date part (for instance, "2013-01-15"). |
↳ numNewerVersions |
int
Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object. |
↳ matchesPrefix |
string[]
Objects having names which start with values specified by this condition will be matched. |
↳ matchesSuffix |
string[]
Objects having names which end with values specified by this condition will be matched. |
Returns | |
---|---|
Type | Description |
Google\Cloud\Storage\Lifecycle |
clearRules
Clear all Object Lifecycle rules or rules of a certain action type.
Example:
// Remove all rules.
$lifecycle->clearRules();
// Remove all "Delete" based rules.
$lifecycle->clearRules('Delete');
// Clear any rules which have an age equal to 50.
$lifecycle->clearRules(function (array $rule) {
return $rule['condition']['age'] === 50
? false
: true;
});
Parameter | |
---|---|
Name | Description |
action |
string|callable
[optional] If a string is provided, it
must be the name of the type of rule to remove ( |
Returns | |
---|---|
Type | Description |
Google\Cloud\Storage\Lifecycle |
getIterator
Returns | |
---|---|
Type | Description |
Generator |
toArray
Returns | |
---|---|
Type | Description |
array |
offsetSet
Parameters | |
---|---|
Name | Description |
offset |
string
|
value |
mixed
|
offsetExists
Parameter | |
---|---|
Name | Description |
offset |
string
|
Returns | |
---|---|
Type | Description |
bool |
offsetUnset
Parameter | |
---|---|
Name | Description |
offset |
string
|
offsetGet
Parameter | |
---|---|
Name | Description |
offset |
string
|
Returns | |
---|---|
Type | Description |
mixed |