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: