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.
Note
The IAM permissions are derived from the qapps:ImportDocument
action. For more information on the IAM policy for Amazon Q Apps, see IAM permissions for using Amazon Q Apps.
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: