class AWS::S3::PresignedPost::ConditionBuilder

Lets you specify conditions on a field. See {AWS::S3::PresignedPost#where} for usage examples.

Public Class Methods

new(post, field) click to toggle source

@private

# File lib/aws/s3/presigned_post.rb, line 239
def initialize(post, field)
  @post = post
  @field = field
end

Public Instance Methods

in(range) click to toggle source

Specifies that the value of the field must be in the given range. This may only be used to constrain the :content_length field, e.g. presigned_post.with(:conent_length).in(1..4).

# File lib/aws/s3/presigned_post.rb, line 277
def in(range)
  @post.refine(:content_length => range)
end
is(value) click to toggle source

Specifies that the value of the field must equal the provided value.

# File lib/aws/s3/presigned_post.rb, line 246
def is(value)
  if @field == :content_length
    self.in(value)
  else
    @post.with_equality_condition(@field, value)
  end
end
starts_with(prefix) click to toggle source

Specifies that the value of the field must begin with the provided value. If you are specifying a condition on the “key” field, note that this check takes place after the +${filename}+ variable is expanded. This is only valid for the following fields:

  • :key

  • :cache_control

  • :content_type

  • :content_disposition

  • :content_encoding

  • :expires_header

  • :acl

  • :success_action_redirect

  • metadata fields (see {where_metadata})

# File lib/aws/s3/presigned_post.rb, line 269
def starts_with(prefix)
  @post.with_prefix_condition(@field, prefix)
end