# File lib/aws/s3/presigned_post.rb, line 196
      def initialize(bucket, opts = {})
        @bucket = bucket
        @key = opts[:key]
        @secure = (opts[:secure] != false)
        @fields = {}
        # TODO normalize all values to @fields
        opts.each do |opt_key, opt_val|
          @fields[opt_key] = opt_val unless SPECIAL_FIELDS.include? opt_key
        end
        @metadata = opts[:metadata] || {}
        @content_length = range_value(opts[:content_length])
        @conditions = opts[:conditions] || {}
        @ignored_fields = [opts[:ignore]].flatten.compact
        @expires = opts[:expires]

        super

        @fields[:server_side_encryption] =
          config.s3_server_side_encryption unless
          @fields.key?(:server_side_encryption)
        @fields.delete(:server_side_encryption) if
          @fields[:server_side_encryption].nil?
      end