Skip to main content

Completes a direct external upload

POST 

/uploads/complete-external-upload.json

Completes an external upload initialized with /get-presigned-put. The file will be moved from its temporary location in external storage to a final destination in the S3 bucket. An Upload record will also be created in the database in most cases.

If a sha1-checksum was provided in the initial request it will also be compared with the uploaded file in storage to make sure the same file was uploaded. The file size will be compared for the same reason.

You must have the correct permissions and CORS settings configured in your external provider. We support AWS S3 as the default. See:

https://meta.discourse.org/t/-/210469#s3-multipart-direct-uploads-4.

An external file store must be set up and enable_direct_s3_uploads must be set to true for this endpoint to function.

Request

Body

    unique_identifier stringrequired

    The unique identifier returned in the original /generate-presigned-put request.

    for_private_message stringrequired

    Optionally set this to true if the upload is for a private message.

    for_site_setting stringrequired

    Optionally set this to true if the upload is for a site setting.

    pasted stringrequired

    Optionally set this to true if the upload was pasted into the upload area. This will convert PNG files to JPEG.

Responses

external upload initialized

Schema
    id integerrequired
    url stringrequired
    original_filename stringrequired
    filesize integerrequired
    width integerrequired
    height integerrequired
    thumbnail_width integerrequired
    thumbnail_height integerrequired
    extension stringrequired
    short_url stringrequired
    short_path stringrequired
    retain_hours stringnullrequired
    human_filesize stringrequired
    dominant_color stringnullrequired
Loading...