Module: S3CorsFileupload::FormHelper

Defined in:
lib/s3_cors_fileupload/rails/form_helper.rb

Instance Method Summary collapse

Instance Method Details

#s3_cors_fileupload_form_tag(options = {}, &block) ⇒ Object Also known as: s3_cors_fileupload_form

Options: :access_key_id The AWS Access Key ID of the owner of the bucket.

Defaults to the `Config.access_key_id` (read from the yaml config file).

:acl One of S3’s Canned Access Control Lists, must be one of:

'private', 'public-read', 'public-read-write', 'authenticated-read'.
Defaults to `'public-read'`.

:max_file_size The max file size (in bytes) that you wish to allow to be uploaded.

Defaults to `Config.max_file_size` or, if no value is set on the yaml file `524288000` (500 MB)

:bucket The name of the bucket on S3 you wish for the files to be uploaded to.

Defaults to `Config.bucket` (read from the yaml config file).

Any other key creates standard HTML options for the form tag.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/s3_cors_fileupload/rails/form_helper.rb', line 18

def s3_cors_fileupload_form_tag(options = {}, &block)
  policy_helper = PolicyHelper.new(options)
  # initialize the hidden form fields
  hidden_form_fields = {
    :key => '',
    'Content-Type' => '',
    'AWSAccessKeyId' => options[:access_key_id] || Config.access_key_id,
    :acl => policy_helper.options[:acl],
    :policy => policy_helper.policy_document,
    :signature => policy_helper.upload_signature,
    :success_action_status => '201'
  }
  # assume that all of the non-documented keys are 
  _html_options = options.reject { |key, val| [:access_key_id, :acl, :max_file_size, :bucket].include?(key) }
  # return the form html
  construct_form_html(hidden_form_fields, policy_helper.options[:bucket], _html_options,  &block)
end