class Canistor::Storage::DeleteMarker

Represents the non-existence of an object on a versioned bucket.

Attributes

version_id[R]

Public Class Methods

new() click to toggle source
# File lib/canistor/storage/delete_marker.rb, line 9
def initialize
  @version_id = generate_version_id
end

Public Instance Methods

delete(context, subject) click to toggle source
# File lib/canistor/storage/delete_marker.rb, line 28
def delete(context, subject)
  context.http_response.signal_headers(200, headers)
end
get(context, subject) click to toggle source
# File lib/canistor/storage/delete_marker.rb, line 24
def get(context, subject)
  Canistor::ErrorHandler.serve_no_such_key(context, subject)
end
head(context, subject) click to toggle source
# File lib/canistor/storage/delete_marker.rb, line 20
def head(context, subject)
  Canistor::ErrorHandler.serve_no_such_key(context, subject)
end
headers() click to toggle source
# File lib/canistor/storage/delete_marker.rb, line 13
def headers
  {
    'x-amz-delete-marker' => 'true',
    'x-amz-version-id' => version_id
  }
end

Private Instance Methods

generate_version_id() click to toggle source
# File lib/canistor/storage/delete_marker.rb, line 34
def generate_version_id
  Base64.strict_encode64(SecureRandom.hex(16)).gsub('=', '')
end