generate_presigned_post

generate_presigned_post(Bucket, Key, Fields=None, Conditions=None, ExpiresIn=3600)

Builds the url and the form fields used for a presigned s3 post

Parameters
  • Bucket (string) -- The name of the bucket to presign the post to. Note that bucket related conditions should not be included in the conditions parameter.
  • Key (string) -- Key name, optionally add ${filename} to the end to attach the submitted filename. Note that key related conditions and fields are filled out for you and should not be included in the Fields or Conditions parameter.
  • Fields (dict) --

    A dictionary of prefilled form fields to build on top of. Elements that may be included are acl, Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires, success_action_redirect, redirect, success_action_status, and x-amz-meta-.

    Note that if a particular element is included in the fields dictionary it will not be automatically added to the conditions list. You must specify a condition for the element as well.

  • Conditions (list) --

    A list of conditions to include in the policy. Each element can be either a list or a structure. For example:

    [
    {"acl": "public-read"}, ["content-length-range", 2, 5], ["starts-with", "$success_action_redirect", ""]

    ]

    Conditions that are included may pertain to acl, content-length-range, Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires, success_action_redirect, redirect, success_action_status, and/or x-amz-meta-.

    Note that if you include a condition, you must specify the a valid value in the fields dictionary as well. A value will not be added automatically to the fields dictionary based on the conditions.

  • ExpiresIn (int) -- The number of seconds the presigned post is valid for.
Return type

dict

Returns

A dictionary with two elements: url and fields. Url is the url to post to. Fields is a dictionary filled with the form fields and respective values to use when submitting the post. For example:

{'url': 'https://mybucket.s3.amazonaws.com
'fields': {'acl': 'public-read',

'key': 'mykey', 'signature': 'mysignature', 'policy': 'mybase64 encoded policy'}

}