class AWS::S3::PresignedPost::ConditionBuilder

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

Public Class Methods

new(post, field) click to toggle source

@api private

# File lib/aws/s3/presigned_post.rb, line 241
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 279
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 248
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 271
def starts_with(prefix)
  @post.with_prefix_condition(@field, prefix)
end