Select your cookie preferences

We use cookies and similar tools to enhance your experience, provide our services, deliver relevant advertising, and make improvements. Approved third parties also use these tools to help us deliver advertising and provide certain site features.

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'}

}