CreatePresignedUrl - Amazon Q Business

CreatePresignedUrl

Creates a presigned URL for an S3 POST operation to upload a file. You can use this URL to set a default file for a FileUploadCard in a Q App definition or to provide a file for a single Q App run. The scope parameter determines how the file will be used, either at the app definition level or the app session level.

Request Syntax

POST /apps.createPresignedUrl HTTP/1.1 instance-id: instanceId Content-type: application/json { "appId": "string", "cardId": "string", "fileContentsSha256": "string", "fileName": "string", "scope": "string", "sessionId": "string" }

URI Request Parameters

The request uses the following URI parameters.

instanceId

The unique identifier of the Amazon Q Business application environment instance.

Required: Yes

Request Body

The request accepts the following data in JSON format.

appId

The unique identifier of the Q App the file is associated with.

Type: String

Pattern: [\da-f]{8}-[\da-f]{4}-[45][\da-f]{3}-[89ABab][\da-f]{3}-[\da-f]{12}

Required: Yes

cardId

The unique identifier of the card the file is associated with.

Type: String

Pattern: [\da-f]{8}-[\da-f]{4}-[45][\da-f]{3}-[89ABab][\da-f]{3}-[\da-f]{12}

Required: Yes

fileContentsSha256

The Base64-encoded SHA-256 digest of the contents of the file to be uploaded.

Type: String

Pattern: [A-Za-z0-9+/]{43}=$|^[A-Za-z0-9+/]{42}==$|^[A-Za-z0-9+/]{44}

Required: Yes

fileName

The name of the file to be uploaded.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 100.

Required: Yes

scope

Whether the file is associated with a Q App definition or a specific Q App session.

Type: String

Valid Values: APPLICATION | SESSION

Required: Yes

sessionId

The unique identifier of the Q App session the file is associated with, if applicable.

Type: String

Pattern: [\da-f]{8}-[\da-f]{4}-[45][\da-f]{3}-[89ABab][\da-f]{3}-[\da-f]{12}

Required: No

Response Syntax

HTTP/1.1 200 Content-type: application/json { "fileId": "string", "presignedUrl": "string", "presignedUrlExpiration": "string", "presignedUrlFields": { "string" : "string" } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

fileId

The unique identifier assigned to the file to be uploaded.

Type: String

presignedUrl

The URL for a presigned S3 POST operation used to upload a file.

Type: String

presignedUrlExpiration

The date and time that the presigned URL will expire in ISO 8601 format.

Type: Timestamp

presignedUrlFields

The form fields to include in the presigned S3 POST operation used to upload a file.

Type: String to string map

Errors

For information about the errors that are common to all actions, see Common Errors.

AccessDeniedException

The client is not authorized to perform the requested operation.

HTTP Status Code: 403

InternalServerException

An internal service error occurred while processing the request.

HTTP Status Code: 500

ThrottlingException

The requested operation could not be completed because too many requests were sent at once. Wait a bit and try again later.

HTTP Status Code: 429

UnauthorizedException

The client is not authenticated or authorized to perform the requested operation.

HTTP Status Code: 401

ValidationException

The input failed to satisfy the constraints specified by the service.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: