S3 Upload confirmation
You can use defineStorage
and defineFunction
to create a function trigger to confirm uploading a file.
To get started, install the @types/aws-lambda
package, which contains types for different kinds of Lambda handlers, events, and responses.
npm add --save @types/aws-lambda
Update your storage definition to define the onUpload trigger as below:
import { defineFunction, defineStorage } from "@aws-amplify/backend";
export const storage = defineStorage({ name: 'myProjectFiles', triggers: { onUpload: defineFunction({ entry: './on-upload-handler.ts' resourceGroupName: 'storage', }) }});
Next, create a file named amplify/storage/on-upload-handler.ts
and use the following code to log the object keys whenever an object is uploaded to the bucket. You can add your custom logic to this function as needed.
import type { S3Handler } from 'aws-lambda';
export const handler: S3Handler = async (event) => { const objectKeys = event.Records.map((record) => record.s3.object.key); console.log(`Upload handler invoked for objects [${objectKeys.join(', ')}]`);};
Now, when you deploy your backend, this function will be invoked whenever an object is uploaded to the bucket.