Page updated Jan 16, 2024

Use existing AWS resources

If you are using the Amplify CLI, an existing Amazon S3 bucket can be used with the Amplify Libraries by running:

1amplify import storage

For more details, see how to Use an existing S3 bucket or DynamoDB table.

If you are not using the Amplify CLI, an existing Amazon S3 bucket can be used by adding it to your Amplify.configure statement.

When you are not using Amplify CLI, adding existing Amazon S3 bucket to your application may require configuring bucket access permissions. e.g. Enabling read/write access to the Cognito user pool that you are using with the Amplify Auth category.

1import { Amplify } from 'aws-amplify';
2import amplifyconfig from './amplifyconfiguration.json';
6 ...Amplify.getConfig(),
7 Storage: {
8 S3: {
9 region: '[REGION]', // (required) - Amazon S3 bucket region
10 bucket: '[BUCKET NAME]' // (required) - Amazon S3 bucket URI
11 }
12 }
  • bucket: Name of the bucket to use for storage
  • region: AWS Region where the bucket is provisioned (e.g. us-east-1)

Note that before you can add an AWS resource to your application, the application must have the Amplify libraries installed. If you need to perform this step, see Install Amplify Libraries.

Configure S3 Object Lock

You can configure the S3 Object Lock parameter of the bucket using the isObjectLockEnabled configuration field. By default, isObjectLockEnabled is set to false. If you want to perform a put operation against a bucket with Object Lock enabled through the console you must first set isObjectLockEnabled to true.

1Amplify.configure(existingConfig, {
2 Storage: {
3 S3: {
4 isObjectLockEnabled: true //OPTIONAl - Object Lock parameter
5 }
6 }