Start uploading a file to Amazon Connect Agent Workspace
Provides a pre-signed Amazon S3 URL in response to upload a new attached file.
Signature
startAttachedFileUpload(data: NewAttachment): Promise<UploadableAttachment>
UploadableAttachment Properties
| Parameter | Type | Description |
|---|---|---|
| associatedResourceArn | string | Amazon Connect ARN of the resource that the file is attached to. Could be a Connect Email Contact ARN or a Connect Case ARN |
| fileId | string | ID in Connect's File record |
| uploadUrl | string | A pre-signed S3 URL that should be used for uploading the attached file. |
| uploadHeaders | Record<string, string> | A map of headers that should be provided in the request when uploading the attached file. |
| uploadMethod | "PUT" | The upload request must be a PUT. |
| fileStatus | FileStatus | The current status of the attached file. Supported values: "APPROVED", "REJECTED", "PROCESSING", "FAILED" |
NewAttachment Properties
| Parameter | Type | Description |
|---|---|---|
| associatedResourceArn | string | Amazon Connect ARN of the resource that the file is attached to. This could be a Connect Email Contact ARN or a Connect Case ARN |
| fileName | string | A case-sensitive name of the attached file being uploaded. Minimum length of 1; Maximum length of 256. Supported pattern: ^\P{C}*$ |
| fileSizeInBytes | number | The size of the attached file in bytes. Minimum value of 1. |
| fileUseCaseType | "ATTACHMENT" | The use case for the file. Must be "ATTACHMENT" |
Error Handling
When beginning the process to upload attached files, agents may encounter issues. The @amazon-connect/file library provides methods to handle common errors:
-
isInvalidFileNameError(): Handle errors when the name of the file is not valid -
isInvalidFileTypeError(): Handle errors when the file type is not supported -
isInvalidFileSizeError(): Handle errors when the size of the file is invalid -
isTotalFileSizeExceededError(): Handle errors when the total size of all files (being uploaded) exceeds the limit. -
isTotalFileCountExceededError(): Handle errors when the total number of files (being uploaded) exceeds the limit.
Usage
import { isInvalidFileNameError, isInvalidFileTypeError, isInvalidFileSizeError, isTotalFileSizeExceededError, isTotalFileCountExceededError } from "@amazon-connect/file"; /* ... */ const newAttachment: NewAttachment = { associatedResourceArn: sampleAssociatedResourceArn, // This could be an email contact ARN or case ARN that you are uploading the attached file to fileName: sampleFileName, fileSizeInBytes: sampleFileSizeInBytes, fileUseCaseType: "ATTACHMENT" }; let uploadableAttachment: UploadableAttachment; try { uploadableAttachment = await fileClient.startAttachedFileUpload(newAttachment); } catch (e) { if (isInvalidFileNameError(e)) { // Handle InvalidFileName error } else if (isInvalidFileTypeError(e)) { // Handle InvalidFileType error } else if (isInvalidFileSizeError(e)) { // Handle InvalidFileSize error } else if (isTotalFileSizeExceededError(e)) { // Handle TotalFileSizeExceeded error } else if (isTotalFileCountExceededError(e)) { // Handle TotalFileCountExceeded error } } // Assuming startAttachedFileUpload succeeded, we upload the attached file to the pre-signed S3 URL const { uploadUrl, uploadHeaders, uploadMethod } = uploadableAttachment; await fetch(uploadUrl, { method: uploadMethod, headers: uploadHeaders, body: file, // This is the file you're uploading });