Class: Google::Cloud::Storage::Bucket::Lifecycle

Inherits:
Array
  • Object
show all
Defined in:
lib/google/cloud/storage/bucket/lifecycle.rb

Overview

Bucket Lifecycle

A special-case Array for managing the Object Lifecycle Management rules for a bucket. Accessed via #lifecycle.

Examples:

Specifying the lifecycle management rules for a new bucket.

require "google/cloud/storage"

storage = Google::Cloud::Storage.new

bucket = storage.create_bucket "my-bucket" do |b|
  b.lifecycle.add_set_storage_class_rule "COLDLINE", age: 10
  b.lifecycle.add_delete_rule age: 30, is_live: false
end

Retrieving a bucket's lifecycle management rules.

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket = storage.bucket "my-bucket"

bucket.lifecycle.size #=> 2
rule = bucket.lifecycle.first
rule.action #=> "SetStorageClass"
rule.storage_class #=> "COLDLINE"
rule.age #=> 10
rule.matches_storage_class #=> ["STANDARD", "NEARLINE"]

Updating the bucket's lifecycle management rules in a block.

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket = storage.bucket "my-bucket"

bucket.lifecycle do |l|
  # Remove the last rule from the array
  l.pop
  # Remove all rules with the given condition
  l.delete_if do |r|
    r.matches_storage_class.include? "NEARLINE"
  end
  l.add_set_storage_class_rule "COLDLINE", age: 10, is_live: true
  l.add_delete_rule age: 30, is_live: false
end

See Also:

Defined Under Namespace

Classes: Rule

Instance Method Summary collapse

Instance Method Details

#add_delete_rule(age: nil, created_before: nil, custom_time_before: nil, days_since_custom_time: nil, days_since_noncurrent_time: nil, is_live: nil, matches_storage_class: nil, noncurrent_time_before: nil, num_newer_versions: nil) ⇒ Object

Adds a SetStorageClass lifecycle rule to the Object Lifecycle Management rules for a bucket.

Examples:

require "google/cloud/storage"

storage = Google::Cloud::Storage.new

bucket = storage.create_bucket "my-bucket" do |b|
  b.lifecycle.add_delete_rule age: 30, is_live: false
end

Parameters:

  • age (Integer) (defaults to: nil)

    The age of a file (in days). This condition is satisfied when a file reaches the specified age.

  • created_before (String, Date) (defaults to: nil)

    A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when a file is created before midnight of the specified date in UTC.

  • custom_time_before (String, Date) (defaults to: nil)

    A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when the custom time on an object is before this date in UTC.

  • days_since_custom_time (Integer) (defaults to: nil)

    Represents the 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.

  • days_since_noncurrent_time (Integer) (defaults to: nil)

    Represents the number of days elapsed since the noncurrent timestamp of an object. The condition is satisfied if the days elapsed is at least this number. 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. Relevant only for versioning-enabled buckets. (See Google::Cloud::Storage::Bucket#versioning?)

  • is_live (Boolean) (defaults to: nil)

    Relevant only for versioned files. If the value is true, this condition matches live files; if the value is false, it matches archived files.

  • matches_storage_class (String, Symbol, Array<String,Symbol>) (defaults to: nil)

    Files having any of the storage classes specified by this condition will be matched. Values include STANDARD, NEARLINE, COLDLINE, and ARCHIVE. REGIONAL,MULTI_REGIONAL, and DURABLE_REDUCED_AVAILABILITY are supported as legacy storage classes. Arguments will be converted from symbols and lower-case to upper-case strings.

  • noncurrent_time_before (String, Date) (defaults to: nil)

    A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when the noncurrent time on an object is before this date in UTC. This condition is relevant only for versioned objects.

  • num_newer_versions (Integer) (defaults to: nil)

    Relevant only for versioned files. 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 file.

See Also:



234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
# File 'lib/google/cloud/storage/bucket/lifecycle.rb', line 234

def add_delete_rule age: nil,
                    created_before: nil,
                    custom_time_before: nil,
                    days_since_custom_time: nil,
                    days_since_noncurrent_time: nil,
                    is_live: nil,
                    matches_storage_class: nil,
                    noncurrent_time_before: nil,
                    num_newer_versions: nil
  push Rule.new(
    "Delete",
    age: age,
    created_before: created_before,
    custom_time_before: custom_time_before,
    days_since_custom_time: days_since_custom_time,
    days_since_noncurrent_time: days_since_noncurrent_time,
    is_live: is_live,
    matches_storage_class: storage_class_for(matches_storage_class),
    noncurrent_time_before: noncurrent_time_before,
    num_newer_versions: num_newer_versions
  )
end

#add_set_storage_class_rule(storage_class, age: nil, created_before: nil, custom_time_before: nil, days_since_custom_time: nil, days_since_noncurrent_time: nil, is_live: nil, matches_storage_class: nil, noncurrent_time_before: nil, num_newer_versions: nil) ⇒ Object

Adds a SetStorageClass lifecycle rule to the Object Lifecycle Management rules for a bucket.

Examples:

require "google/cloud/storage"

storage = Google::Cloud::Storage.new

bucket = storage.create_bucket "my-bucket" do |b|
  b.lifecycle.add_set_storage_class_rule "COLDLINE", age: 10
end

Parameters:

  • storage_class (String, Symbol)

    The target storage class. Required if the type of the action is SetStorageClass. The argument will be converted from symbols and lower-case to upper-case strings.

  • age (Integer) (defaults to: nil)

    The age of a file (in days). This condition is satisfied when a file reaches the specified age.

  • created_before (String, Date) (defaults to: nil)

    A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when a file is created before midnight of the specified date in UTC.

  • custom_time_before (String, Date) (defaults to: nil)

    A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when the custom time on an object is before this date in UTC.

  • days_since_custom_time (Integer) (defaults to: nil)

    Represents the 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.

  • days_since_noncurrent_time (Integer) (defaults to: nil)

    Represents the number of days elapsed since the noncurrent timestamp of an object. The condition is satisfied if the days elapsed is at least this number. 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. Relevant only for versioning-enabled buckets. (See Google::Cloud::Storage::Bucket#versioning?)

  • is_live (Boolean) (defaults to: nil)

    Relevant only for versioned files. If the value is true, this condition matches live files; if the value is false, it matches archived files.

  • matches_storage_class (String, Symbol, Array<String,Symbol>) (defaults to: nil)

    Files having any of the storage classes specified by this condition will be matched. Values include STANDARD, NEARLINE, COLDLINE, and ARCHIVE. REGIONAL,MULTI_REGIONAL, and DURABLE_REDUCED_AVAILABILITY are supported as legacy storage classes. Arguments will be converted from symbols and lower-case to upper-case strings.

  • noncurrent_time_before (String, Date) (defaults to: nil)

    A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when the noncurrent time on an object is before this date in UTC. This condition is relevant only for versioned objects.

  • num_newer_versions (Integer) (defaults to: nil)

    Relevant only for versioned files. 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 file.

See Also:



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# File 'lib/google/cloud/storage/bucket/lifecycle.rb', line 151

def add_set_storage_class_rule storage_class,
                               age: nil,
                               created_before: nil,
                               custom_time_before: nil,
                               days_since_custom_time: nil,
                               days_since_noncurrent_time: nil,
                               is_live: nil,
                               matches_storage_class: nil,
                               noncurrent_time_before: nil,
                               num_newer_versions: nil
  push Rule.new(
    "SetStorageClass",
    storage_class: storage_class_for(storage_class),
    age: age,
    created_before: created_before,
    custom_time_before: custom_time_before,
    days_since_custom_time: days_since_custom_time,
    days_since_noncurrent_time: days_since_noncurrent_time,
    is_live: is_live,
    matches_storage_class: storage_class_for(matches_storage_class),
    noncurrent_time_before: noncurrent_time_before,
    num_newer_versions: num_newer_versions
  )
end