Cloud StorageAmazon S3 Integration
Cloud Storage

Amazon S3 Integration

Amazon S3 client for object storage operations including bucket management, file upload/download, and access control. Provides comprehensive S3 functionality for storing and retrieving any amount of d

Amazon S3

Category: Cloud Storage
Provider Key: amazonS3
SDK Packages: @aws-sdk/client-s3@^3.943.0, @aws-sdk/lib-storage@^3.943.0, @aws-sdk/s3-request-presigner@^3.943.0

Amazon S3 client for object storage operations including bucket management, file upload/download, and access control. Provides comprehensive S3 functionality for storing and retrieving any amount of data from anywhere on the web.


Configuration

To use Amazon S3 in your project, add it to your project integrations and provide the following configuration:

ParameterTypeRequiredDescription
accessKeyIdstringYesAWS Access Key ID
secretAccessKeystringYesAWS Secret Access Key
regionstringYesAWS region (e.g., 'us-east-1')
endpointstringNoCustom S3 endpoint URL (optional, for S3-compatible services)
forcePathStylebooleanNoForce path-style URLs (optional, default: false)

Example Configuration

{
  "provider": "amazonS3",
  "configuration": [
    { "name": "accessKeyId", "value": "your-accessKeyId" },
    { "name": "secretAccessKey", "value": "your-secretAccessKey" },
    { "name": "region", "value": "your-region" },
    { "name": "endpoint", "value": "your-endpoint" },
    { "name": "forcePathStyle", "value": false }
  ]
}

Available Methods

Quick reference:

  • Buckets: listBuckets, createBucket, deleteBucket, bucketExists
  • Objects: listObjects, putObject, uploadLargeObject, getObject, getObjectMetadata, deleteObject, copyObject, generatePresignedUrl

Buckets

listBuckets

List Buckets

Lists all S3 buckets in the account

Parameters:

This method takes no parameters.

MScript example:

await _amazonS3.listBuckets()

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.listBuckets();

createBucket

Create Bucket

Creates a new S3 bucket

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket to create
aclstringNoAccess control list (private, public-read, etc.)

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "createBucketAction",
  "provider": "amazonS3",
  "action": "createBucket",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "acl", "parameterValue": "'your-acl'" }
  ],
  "contextPropertyName": "createBucketResult"
}

MScript example:

await _amazonS3.createBucket({
  bucketName: /* string */,
  acl: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.createBucket({
  bucketName: /* string */,
  acl: /* string */,
});

deleteBucket

Delete Bucket

Deletes an S3 bucket

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket to delete

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "deleteBucketAction",
  "provider": "amazonS3",
  "action": "deleteBucket",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" }
  ],
  "contextPropertyName": "deleteBucketResult"
}

MScript example:

await _amazonS3.deleteBucket({
  bucketName: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.deleteBucket({
  bucketName: /* string */,
});

bucketExists

Check Bucket Exists

Checks if a bucket exists and is accessible

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket to check

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "bucketExistsAction",
  "provider": "amazonS3",
  "action": "bucketExists",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" }
  ],
  "contextPropertyName": "bucketExistsResult"
}

MScript example:

await _amazonS3.bucketExists({
  bucketName: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.bucketExists({
  bucketName: /* string */,
});

Objects

listObjects

List Objects

Lists objects in a bucket

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket
prefixstringNoPrefix to filter objects
maxKeysnumberNoMaximum number of objects to return
continuationTokenstringNoToken for pagination

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "listObjectsAction",
  "provider": "amazonS3",
  "action": "listObjects",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "prefix", "parameterValue": "'your-prefix'" },
    { "parameterName": "maxKeys", "parameterValue": "0" },
    { "parameterName": "continuationToken", "parameterValue": "'your-continuationToken'" }
  ],
  "contextPropertyName": "listObjectsResult"
}

MScript example:

await _amazonS3.listObjects({
  bucketName: /* string */,
  prefix: /* string */,
  maxKeys: /* number */,
  continuationToken: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.listObjects({
  bucketName: /* string */,
  prefix: /* string */,
  maxKeys: /* number */,
  continuationToken: /* string */,
});

putObject

Upload Object

Uploads an object to S3

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket
keystringYesObject key/path
body`BufferStreamstring`
contentTypestringNoMIME type of the object
metadataObjectNoUser-defined metadata

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "putObjectAction",
  "provider": "amazonS3",
  "action": "putObject",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "key", "parameterValue": "'your-key'" },
    { "parameterName": "body", "parameterValue": "'your-body'" },
    { "parameterName": "contentType", "parameterValue": "'your-contentType'" },
    { "parameterName": "metadata", "parameterValue": "{}" }
  ],
  "contextPropertyName": "putObjectResult"
}

MScript example:

await _amazonS3.putObject({
  bucketName: /* string */,
  key: /* string */,
  body: /* Buffer|Stream|string */,
  contentType: /* string */,
  metadata: /* Object */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.putObject({
  bucketName: /* string */,
  key: /* string */,
  body: /* Buffer|Stream|string */,
  contentType: /* string */,
  metadata: /* Object */,
});

uploadLargeObject

Upload Large Object

Uploads large objects using multipart upload

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket
keystringYesObject key/path
bodyStreamYesObject content stream
contentTypestringNoMIME type of the object
metadataObjectNoUser-defined metadata

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "uploadLargeObjectAction",
  "provider": "amazonS3",
  "action": "uploadLargeObject",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "key", "parameterValue": "'your-key'" },
    { "parameterName": "body", "parameterValue": "'your-body'" },
    { "parameterName": "contentType", "parameterValue": "'your-contentType'" },
    { "parameterName": "metadata", "parameterValue": "{}" }
  ],
  "contextPropertyName": "uploadLargeObjectResult"
}

MScript example:

await _amazonS3.uploadLargeObject({
  bucketName: /* string */,
  key: /* string */,
  body: /* Stream */,
  contentType: /* string */,
  metadata: /* Object */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.uploadLargeObject({
  bucketName: /* string */,
  key: /* string */,
  body: /* Stream */,
  contentType: /* string */,
  metadata: /* Object */,
});

getObject

Download Object

Downloads an object from S3

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket
keystringYesObject key/path

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "getObjectAction",
  "provider": "amazonS3",
  "action": "getObject",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "key", "parameterValue": "'your-key'" }
  ],
  "contextPropertyName": "getObjectResult"
}

MScript example:

await _amazonS3.getObject({
  bucketName: /* string */,
  key: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.getObject({
  bucketName: /* string */,
  key: /* string */,
});

getObjectMetadata

Get Object Metadata

Gets object metadata without downloading the content

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket
keystringYesObject key/path

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "getObjectMetadataAction",
  "provider": "amazonS3",
  "action": "getObjectMetadata",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "key", "parameterValue": "'your-key'" }
  ],
  "contextPropertyName": "getObjectMetadataResult"
}

MScript example:

await _amazonS3.getObjectMetadata({
  bucketName: /* string */,
  key: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.getObjectMetadata({
  bucketName: /* string */,
  key: /* string */,
});

deleteObject

Delete Object

Deletes an object from S3

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket
keystringYesObject key/path

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "deleteObjectAction",
  "provider": "amazonS3",
  "action": "deleteObject",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "key", "parameterValue": "'your-key'" }
  ],
  "contextPropertyName": "deleteObjectResult"
}

MScript example:

await _amazonS3.deleteObject({
  bucketName: /* string */,
  key: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.deleteObject({
  bucketName: /* string */,
  key: /* string */,
});

copyObject

Copy Object

Copies an object within S3

Parameters:

ParameterTypeRequiredDescription
sourceBucketstringYesSource bucket name
sourceKeystringYesSource object key
destinationBucketstringYesDestination bucket name
destinationKeystringYesDestination object key

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "copyObjectAction",
  "provider": "amazonS3",
  "action": "copyObject",
  "parameters": [
    { "parameterName": "sourceBucket", "parameterValue": "'your-sourceBucket'" },
    { "parameterName": "sourceKey", "parameterValue": "'your-sourceKey'" },
    { "parameterName": "destinationBucket", "parameterValue": "'your-destinationBucket'" },
    { "parameterName": "destinationKey", "parameterValue": "'your-destinationKey'" }
  ],
  "contextPropertyName": "copyObjectResult"
}

MScript example:

await _amazonS3.copyObject({
  sourceBucket: /* string */,
  sourceKey: /* string */,
  destinationBucket: /* string */,
  destinationKey: /* string */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.copyObject({
  sourceBucket: /* string */,
  sourceKey: /* string */,
  destinationBucket: /* string */,
  destinationKey: /* string */,
});

generatePresignedUrl

Generate Pre-signed URL

Generates a pre-signed URL for temporary object access

Parameters:

ParameterTypeRequiredDescription
bucketNamestringYesName of the bucket
keystringYesObject key/path
expiresInnumberNoURL expiration time in seconds (default: 3600)

IntegrationAction example:

{
  "extendClassName": "IntegrationAction",
  "name": "generatePresignedUrlAction",
  "provider": "amazonS3",
  "action": "generatePresignedUrl",
  "parameters": [
    { "parameterName": "bucketName", "parameterValue": "'your-bucketName'" },
    { "parameterName": "key", "parameterValue": "'your-key'" },
    { "parameterName": "expiresIn", "parameterValue": "0" }
  ],
  "contextPropertyName": "generatePresignedUrlResult"
}

MScript example:

await _amazonS3.generatePresignedUrl({
  bucketName: /* string */,
  key: /* string */,
  expiresIn: /* number */,
})

Service library example:

const { getIntegrationClient } = require("integrations");
const client = await getIntegrationClient("amazonS3");
const result = await client.generatePresignedUrl({
  bucketName: /* string */,
  key: /* string */,
  expiresIn: /* number */,
});