Syntax

A google_storage_bucket_object is used to test a Google BucketObject resource

Examples

describe google_storage_bucket_object(bucket: 'bucket-with-object', object: 'image1') do
  it { should exist }
  its('size.to_i') { should be > 0 }

  its('time_created') { should be > Time.now - 60*60*24*10 }
  its('time_updated') { should be > Time.now - 60*60*24*10 }
end

describe google_storage_bucket_object(bucket: 'bucket-with-object', object: "nonexistent") do
  it { should_not exist }
end

Test that a GCP compute zone exists

describe google_storage_bucket_object(bucket: 'bucket-buvsjjcndqz',  object: 'bucket-object-pmxbiikq') do
  it { should exist }
end

Test that a GCP storage bucket object has non-zero size

describe google_storage_bucket_object(bucket: 'bucket-buvsjjcndqz',  object: 'bucket-object-pmxbiikq') do
  its('size') { should be > 0 }
end

Test that a GCP storage bucket object has the expected content type

describe google_storage_bucket_object(bucket: 'bucket-buvsjjcndqz',  object: 'bucket-object-pmxbiikq') do
  its('content_type') { should eq "text/plain; charset=utf-8" }
end

Test that a GCP storage bucket object was created within a certain time period

describe google_storage_bucket_object(bucket: 'bucket-buvsjjcndqz',  object: 'bucket-object-pmxbiikq') do
  its('time_created_date') { should be > Time.now - 365*60*60*24*10 }
end

Test that a GCP storage bucket object was last updated within a certain time period

describe google_storage_bucket_object(bucket: 'bucket-buvsjjcndqz',  object: 'bucket-object-pmxbiikq') do
  its('time_updated') { should be > Time.now - 365*60*60*24*10 }
end

Properties

Properties that can be accessed from the google_storage_bucket_object resource:

  • bucket: The name of the bucket.

  • object: The name of the object.

  • content_type: The Content-Type of the object data. See https://developer.mozilla.org/en-US/docs/Web/HTTP/BasicsofHTTP/MIMEtypes/CompletelistofMIME_types for more information on possible Content-Types

  • crc32c: CRC32c checksum.

  • etag: The object entity tag.

  • generation: The content generation of this object. Used for object versioning.

  • id: The ID of the object, including the bucket name, object name, and generation number.

  • md5_hash: MD5 hash of the data; encoded using base64.

  • media_link: Media download link.

  • metageneration: The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.

  • name: The name of the object.

  • size: Content-Length of the data in bytes.

  • storage_class: Storage class of the object.

  • time_created: The time this object was created.

  • time_deleted: The time this object was deleted. Returned if and only if this version of the object is no longer a live version, but remains in the bucket as a noncurrent version.

  • time_storage_class_updated: The time at which the object’s storage class was last changed.

  • time_updated: The modification time of the object metadata.

GCP Permissions

Ensure the Google Cloud Storage is enabled for the current project.