Skip to main content

Amazon S3 Component

Manage files within an Amazon (AWS) S3 bucket

Component key: aws-s3

Description

Amazon S3 is a file storage solution from Amazon Web Services. The Amazon S3 component allows you to create, read, update, move, list or delete objects (files) within an Amazon S3 bucket.

API Documentation: Amazon S3 API Reference

A common integration pattern involves listing files in a file store, and performing a series of actions on the array of files that are returned. See our looping over files quickstart for information about how to create a loop over an array of files.

Listening for file changes

You can leverage Amazon Simple Notification Service (SNS) to listen for file changes in S3. Our GitHub examples repo contains an example integration that illustrates how to listen for file changes in S3 and perform an action when a file is added or updated - you can import and try it out for yourself.

Example Integration

The example integration contains three flows:

  • Create and configure SNS topic runs when an instance is deployed and will create an SNS topic and configure it to listen for new files added to S3. It instructs SNS to notify the Receive SNS Notifications flow when a new file is added to an S3 bucket that a user selected as part of the configuration wizard.
  • Receive SNS Notifications will receive the SNS notification and extract the S3 bucket and key from the message. It will fetch the file that was added. From there, you can process or send that file to another system.
  • Remove SNS Topic will remove the SNS topic that was created in the first flow when an instance is deleted.

Connections

AWS API Key and Secret

An AWS IAM access key pair is required to interact with Amazon S3. Make sure that the key pair you generate in AWS has proper permissions to the S3 resources you want to access. Read more about S3 IAM actions in the AWS docs.

To create an IAM access key pair:

  1. Sign in to the AWS Console and navigate to Identity and Access Management (IAM)
  2. Under the Access Keys section select Create access key
  3. Once created copy the Access Key and Secret access key and enter them into the connection configuration of your integration.

AWS Role ARN

To enable the IAM role authentication begin by logging into the AWS Console and navigate to Identity and Access Management (IAM).

To create an ARN user and generate credentials:

  1. Navigate to Users and select Create User.
  • Provide a User name and check the box providing them user access to the AWS Managment Console if needed.
  • Once completed with the User creation, copy the ARN provided in the summary for a later step.
  1. To obtain the ARN for an existing User, click on the designated username from the Users page and the ARN will be provided in the summary section.
  2. From the summary section, select Create access key
  • Select Third-party service as the access key type and select next.
  • Set a description and select create access key.
  • Copy the Access Key and Secret access key and enter those into the connection configuration of your integration along with the ARN.

To create and assign a user a role:

  1. Navigate to Roles and select Create Role.
  • Select Custom Trust Policy for the Trusted entity types
  • Copy the following statement into the statement console. Making sure to replace the ARN with the user's actual ARN from the previous section
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "ARN"
},
"Action": "sts:AssumeRole"
}
]
}
  • When adding permissions provide the AmazonS3FullAccess permission
  • Complete remaining steps and select Create Role

Triggers

Webhook

Trigger to handle SNS subscription for S3 event notifications | key: snsS3NotificationWebhook

To trigger an S3 webhook, first you need to set up event notifications by using a SNS topic subscription to receive notifications when something changes on an S3 bucket.

You can accomplish this by creating an integration flow using the next components in the same order:

Create Topic For S3 Event Notification

Use this component to create a new topic. This topic will act as a communication channel for receiving event notifications from the S3 bucket.

Update Topic Policy For S3 Event Notification

Use this component to modify the access policy of the previously created topic to grant permission to the S3 bucket to publish messages to the topic. This policy adjustment allows the S3 bucket to send event notifications to a topic.

Subscribe to Topic

Use this component to subscribe to the previously created topic. You should create another flow and include the S3 Webhook (snsS3NotificationWebhook) get the flow URL and set it as the subscription's endpoint. This endpoint represents the Prismatic webhook that will be triggered when events occur in the S3 bucket. Note: S3 Webhook (snsS3NotificationWebhook) takes care of confirming the subscription.

Bucket SNS Event Trigger Configuration

Use this component to configure the S3 bucket to generate event notifications when objects within it change. Specify the desired events such as object creation, deletion, or modification that should trigger the event.

With these steps, you have established a flow where changes to objects in the S3 bucket will trigger event notifications. These notifications are published to the created topic, which then delivers them to the subscribed Prismatic trigger endpoint. As a result, the Prismatic webhook URL is called, allowing you to process the events or perform custom actions in response to the changes in the S3 bucket.

Output Example Payload

{
"payload": {
"headers": {
"Accept-Encoding": "gzip,deflate",
"Content-Type": "text/plain; charset=UTF-8",
"Host": "hooks.prismatic.io",
"User-Agent": "Amazon Simple Notification Service Agent",
"X-Amz-Cf-Id": "YniH-T5wsgLIDAZGQqoyBHaDGn7wn-6HLrba6tXoQPeWzF4kKBU12345",
"x-amz-sns-message-id": "bf30dd82-9ea0-5810-8856-80a8f5b12345",
"x-amz-sns-message-type": "Notification",
"x-amz-sns-subscription-arn": "arn:aws:sns:us-east-2:360110312345:TopicName:885a69c3-c9e8-4e60-95e0-eef25d212345",
"x-amz-sns-topic-arn": "arn:aws:sns:us-east-2:360110312345:TopicName",
"X-Amzn-Trace-Id": "Root=1-64b068d6-637723ca3d4d079c07112345"
},
"queryParameters": null,
"rawBody": "<data (1790 bytes)>",
"body": {
"data": {
"Type": "Notification",
"MessageId": "bf30dd82-9ea0-5810-8856-80a8f5b12345",
"TopicArn": "arn:aws:sns:us-east-2:360110312345:TopicName",
"Subject": "Amazon S3 Notification",
"Message": "{\"Records\":[{\"eventVersion\":\"2.1\",\"eventSource\":\"aws:s3\",\"awsRegion\":\"us-east-2\",\"eventTime\":\"2023-07-13T21:12:53.055Z\",\"eventName\":\"ObjectCreated:Put\",\"userIdentity\":{\"principalId\":\"AHAMUB6P64E3X\"},\"requestParameters\":{\"sourceIPAddress\":\"189.3.2.1\"},\"responseElements\":{\"x-amz-request-id\":\"F4SB1AW5GXE12345\",\"x-amz-id-2\":\"ushICMH5Uag/mHKtTGsdxqV3NqMCKvLQyZgw7qNrfKU/FeTaJhKmAO6Z+pG0DITDcmmIcXHB25nmOnxnsVxByqK8qVpFVrcvy+u0Swy12345\"},\"s3\":{\"s3SchemaVersion\":\"1.0\",\"configurationId\":\"EventName\",\"bucket\":{\"name\":\"bucketName\",\"ownerIdentity\":{\"principalId\":\"12345\"},\"arn\":\"arn:aws:s3:::bucketName\"},\"object\":{\"key\":\"test.docx\",\"size\":12551,\"eTag\":\"c8a35e0c8dc9b8a2b622339fa5b12345\",\"sequencer\":\"0064B068D4E19CDEAD\"}}}]}",
"Timestamp": "2023-07-13T21:12:54.505Z",
"SignatureVersion": "1",
"Signature": "ZlPxmNxGxhG05drIsJONhJw8bA8kW4XJ3zB5KjIfr7cMJX8iDkcyhI3T8ptn8Klc0InlwCkdmuV3HSWBL/RkwY47za5rFOXuHxuwKwCu4sbTiEfOnznoRnfYaq/hORp3Si4IIVpU2F7CVHfNOseiU1Ml+kktdHzf2rPBsD8iaWh7R9edtv9P0dZ5jrPV4dXDaIaqf5t/4FgCvYCoxcTqgaIfcL6EYtGmxSsTC3fc47OAjpTaj9mEeQ/c23P6pOYGchDwbE/Yl/Slioy9lk93pahRoUzukpbj8z5cJm9iGlT++v6O2ztwO/x12345",
"SigningCertURL": "https://sns.us-east-2.amazonaws.com/SimpleNotificationService-12345.pem",
"UnsubscribeURL": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:360110312345:TopicName:885a69c3-c9e8-4e60-95e0-eef212345"
}
},
"pathFragment": "",
"webhookUrls": {
"Flow 1": "https://hooks.prismatic.io/trigger/<WEBHOOK_ID>"
},
"webhookApiKeys": {
"Flow 1": ["sample-api-key"],
"SNS S3": ["sample-api-key"]
},
"invokeUrl": "https://hooks.prismatic.io/trigger/<WEBHOOK_ID>",
"executionId": "SW5zdGFuY2VFeGVjdXRpb25SZXN1bHQ6N2Y3NmJkNjctZjFkNS00YTU5LTliODEtN2JiZGJlNGM12345",
"customer": {
"id": "testCustomerId",
"name": "Test Customer",
"externalId": "testCustomerExternalId"
},
"instance": {
"id": "testInstanceId",
"name": "Test Instance"
},
"user": {
"id": "testUserId",
"email": "testUserEmail@example.com",
"name": "Test User",
"externalId": "testUserExternalId"
}
}
}

Data Sources

Select AWS Region

Select an AWS region | key: selectRegion | type: picklist


Select Bucket

Choose a bucket from a list | key: selectBucket | type: picklist


Actions

Abort Multipart Upload

Abort a multipart upload | key: abortMultipartUpload

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 204,
"requestId": "DZ1ZJB3H2JB1234",
"extendedRequestId": "0D9BDVoAGoHqu3dIW4WHmaO4kkiWecrbf0yLRMe/JmUfX7N/12345=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Bucket SNS Event Trigger Configuration

Add events to send notifications to SNS Topic | key: bucketEventTriggerConfiguration

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "73B4K590MABCMWV",
"extendedRequestId": "AHYlhdFxyrlbc3otaMb/gcjlmDEY+UT3xt7Vz6ZQ8F4B1234GZQSGN7D6yDV7mEC+U/1xU0pKc=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Complete Multipart Upload

Complete a multipart upload | key: completeMultipartUpload

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "GD4Y1XMZ6MFV1234",
"extendedRequestId": "Ego8CAUdYnt2THhZmBLnbfmTPY0HR8zA9rEMkSg+OB0t/uldGkuBlI6UF9X+123456=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"ServerSideEncryption": "AES256",
"Bucket": "bucket-name",
"ETag": "\"d96cf49f8c439501eb19c4728712345-1\"",
"Key": "image.jpg",
"Location": "https://bucketname.s3.us-east-2.amazonaws.com/image.jpg"
}
}

Copy Object

Copy an object in S3 from one location to another | key: copyObject

Output Example Payload

{
"data": {
"CopyObjectResult": {
"ETag": "Example",
"LastModified": "2020-01-01T00:00:00.000Z"
}
}
}

Create Multipart Upload

Create a multipart upload | key: createMultipartUpload

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "J4Q9AY99DPMR1234",
"extendedRequestId": "P59zKeH2C4Jz3VAC1I+12345Gty4d4gyl9JYQmc4udM6bCB6w/MEg8AKKWUuBH1x0EU2dufwkw=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"ServerSideEncryption": "AES256",
"Bucket": "bucket-name",
"Key": "file.txt",
"UploadId": "9DWJzLdFIcK05G2Yq.TNhJbCU57dDZyIRlO_tHcdFgYqWQgtu6XdASs7h.DJlcWk2M9vmEx72gXcS8q5SBu_12345ccg-"
}
}

Create SNS Topic For S3 Event Notification

Create an Amazon SNS Topic to be used with S3 Event Notifications | key: createTopic

Output Example Payload

{
"data": {
"TopicArn": "arn:aws:Example Topic Arn"
}
}

Delete Bucket

Deletes the S3 bucket. All objects in the bucket must be deleted before the bucket itself can be deleted | key: deleteBucket

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 204,
"requestId": "CBD415E7",
"extendedRequestId": "WXvHrStedS7jFJZVw0Pt1LH3K3Nn99XFGuyELkK7UQANs3IOHs9GsR=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Delete Object

Delete an Object within an S3 Bucket | key: deleteObject

Output Example Payload

{
"data": {
"DeleteMarker": true,
"VersionId": "3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo",
"RequestCharged": "requestor"
}
}

Delete Objects

Delete multiple objects from a bucket | key: deleteObjects

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "FAQAVT",
"extendedRequestId": "T/nk6UtPuVs11K6ji59C8phr==",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"Deleted": [
{
"Key": "file.csv"
},
{
"Key": "audio.mp3"
}
]
}
}

Generate Presigned URL

Generate a presigned URL that can be used to upload or download an object in S3 | key: generatePresignedUrl

Output Example Payload

{
"data": "https://my-bucket.s3.us-east-2.amazonaws.com/my-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256..."
}

Generate Presigned URL for Multipart Uploads

Generate presigned URL's that can be used to upload or download an object in S3 | key: generatePresignedForMultiparUploads

Output Example Payload

{
"data": [
{
"url": "https://my-bucket.s3.us-east-2.amazonaws.com/my-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256...",
"partNumber": 1
}
]
}

Get Bucket Location

Get the location (AWS region) of a bucket by name | key: getBucketLocation

Output Example Payload

{
"data": "us-east-1"
}

Get Bucket Notification Configuration

Returns the notification configuration of a bucket | key: getBucketNotificationConfiguration

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "2KMYXFM4GHPES",
"extendedRequestId": "dLu9EloFaZ2UeACk5l4IovjfHXHTkM7kFLdThrbIJIjn05dgO7bdU3TUJ7/8DzZvcQ==",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"LambdaFunctionConfigurations": [
{
"Id": "Lambda",
"LambdaFunctionArn": "arn:aws:lambda:us-east-2:1234:function:Function",
"Events": [
"s3:ObjectRemoved:*"
]
}
],
"QueueConfigurations": [
{
"Id": "Queue",
"QueueArn": "arn:aws:sqs:us-east-2:1234:Queue",
"Events": [
"s3:ObjectCreated:*"
]
}
],
"TopicConfigurations": [
{
"Id": "Topic",
"TopicArn": "arn:aws:sns:us-east-2:1234:Topic",
"Events": [
"s3:ObjectRestore:*"
]
}
]
}
}

Get Current Account

Get the current AWS account | key: getCurrentAccount

Output Example Payload

{
"data": {
"$metadata": {},
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/Alice",
"UserId": "ABCDEFGHIJKLMNOP:ABCDEFGHIJKLMNOP"
}
}

Get Object

Get the contents of an object | key: getObject

Output Example Payload

{
"data": {
"type": "Buffer",
"data": [
69,
120,
97,
109,
112,
108,
101,
32,
70,
105,
108,
101,
32,
67,
111,
110,
116,
101,
110,
116,
115
]
},
"contentType": "application/octet"
}

Get Object Attributes

Retrieves all the metadata from an object without returning the object itself | key: getObjectAttributes

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "0AJN29JBC3D5BNB6",
"extendedRequestId": "sVW4/xKq7DkMI8kgvbJUNWbzzZ9H6GKqyVocDm3uE4y7dZ6GmZcFrIC9MPGDjSNXMMn8CtLO8Vy0SxOcNOwl2A==",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"LastModified": "2024-03-08T22:20:41.000Z",
"VersionId": "0Ec_RdbYOEQ1Un2HllBJbGG758RS3UuZ",
"ObjectSize": 515400
}
}

Get Object Lock Configuration

Gets the Object Lock configuration for a bucket | key: getObjectLockConfiguration

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "J58R459KF4NH",
"extendedRequestId": "YLfHsBUyeXU06tYjF7ZLX7f7JhBL1FFZhA/UZKUr4WNTy0OHDOjYN=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"ObjectLockConfiguration": {
"ObjectLockEnabled": "Enabled",
"Rule": {
"DefaultRetention": {
"Mode": "GOVERNANCE",
"Years": 2
}
}
}
}
}

Get Object Retention

Retrieves an object's retention settings | key: getObjectRetention

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "88W3KJSMC9E",
"extendedRequestId": "aJ3Rpb+v2F6Fqy47J6fWoPPCqe+LC8UX8vo5x3KK/YhN/=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"Retention": {
"Mode": "COMPLIANCE",
"RetainUntilDate": "2024-08-25T20:00:00.000Z"
}
}
}

Head Bucket

Determine if a bucket exists and if you have permission to access it | key: headBucket

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "A6R8PTRGRVGVB123",
"extendedRequestId": "O1lqC0pMNa1+juScFrJbqgtJDQgkqvkcWDvLPfmcZBQNbxe+Bl4JE0WeIuswg/123456==",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Head Object

Retrieve metadata from an object without returning the object itself | key: headObject

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "2GNCNQ9QYJF91H2H3",
"extendedRequestId": "20td2yhMFyFEFYm7Wh+P+qr8DDva152du5KA+JFU7ZRuHWLFZZxdLCOVfnMF41K2BYQ/12345=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"AcceptRanges": "bytes",
"LastModified": "2021-08-25T20:00:00.000Z",
"ContentLength": 65338,
"ETag": "\"266b7131485849fcefe583dcce654321\"",
"ContentType": "image/jpeg",
"ServerSideEncryption": "AES256",
"Metadata": {}
}
}

List Buckets

List all buckets in an AWS account | key: listBuckets

Output Example Payload

{
"data": [
{
"Name": "bucket-1",
"CreationDate": "2024-03-08T23:30:22.000Z"
}
]
}

List Multipart Uploads

Lists in-progress multipart uploads in a bucket | key: listMultipartUploads

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "MSB2RAFETTBCQ123",
"extendedRequestId": "Ax6cjVx4lugZGOI+yo3dApqbvrtLD3U",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"Bucket": "some-bucket",
"IsTruncated": false,
"KeyMarker": "",
"MaxUploads": 1000,
"NextKeyMarker": "file.txt",
"NextUploadIdMarker": "itQ2Dw8eMZ01dGiwRIj2dwDqpx",
"UploadIdMarker": "",
"Uploads": [
{
"UploadId": "hbZQmDNtym9xtdh8XwgT7Ys..FkRWJfV0MUgmNWg",
"Key": "new_file.txt",
"Initiated": "2024-01-25T16:06:31.000Z",
"StorageClass": "STANDARD",
"Owner": {
"ID": "0edc4b00d"
},
"Initiator": {
"ID": "0edc4b00d"
}
}
]
}
}

List Objects

List Objects in a Bucket | key: listObjects

Output Example Payload

{
"data": [
"Example Item 1",
"Example Item 2",
"Example Item 3"
]
}

List Parts

List parts of a multipart upload | key: listParts

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "3Z9CNHKT01WVE123",
"extendedRequestId": "AYcUJyiexeUBBf5Uynsj4m1PojM18tHSxlyKMWzjM+123456=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"Bucket": "bucket-name",
"Initiator": {
"ID": "0edc4b00d1bfae1ebe33617c5cfe04e17b6f1fb9c5c2c55796123456"
},
"IsTruncated": false,
"Key": "image.jpg",
"MaxParts": 1000,
"NextPartNumberMarker": "1",
"Owner": {
"ID": "0edc4b00d1bfae1ebe33617c5cfe04e17b6f1fb9c5c2c55796123456"
},
"PartNumberMarker": "0",
"Parts": [
{
"PartNumber": 1,
"LastModified": "2024-03-11T23:47:51.000Z",
"ETag": "\"266b7131485849fcefe583dcce071234\"",
"Size": 65338
}
],
"StorageClass": "STANDARD",
"UploadId": "iHtFwRT6d6IAPwGTlT6tO1iBApulQGCA2sG7yn_BzUKItrnLrWykCbDheQBJrb1MUGHgGfihOY07XfnCeU2CWCZM0kD6VbyC46MJ4123456-"
}
}

Put Bucket Notification Configuration

Replace an existing bucket notification configuration with a new one | key: putBucketNotificationConfiguration

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "3G6FNXP71KGVQ",
"extendedRequestId": "epeRYyT9tl3QOMTMck4AG+NqmGa5fRKv5nME7gRl8KMxfnCAKWZzKbWVKp4ED7RaZIGvVcS=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Put Object

Write an object to S3 | key: putObject

note

File Contents can be a reference to a binary file from a previous step. For example, if you have an HTTP Get action that pulls down a .png image, you can reference its step name to write the .png to S3. Or, File Contents can be simple text, like 'Hello World'.

Output Example Payload

{
"data": {
"ETag": "Example Tag",
"VersionId": "Example Version Id"
}
}

Put Object Lock Configuration

Places an Object Lock configuration on the specified bucket | key: putObjectLockConfiguration

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "HRTN",
"extendedRequestId": "n2j6gnXOgOKm+PomoHrLsbOhatc7LMw1Su",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Put Object Retention

Places an Object Retention configuration on an object | key: putObjectRetention

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "9GKTJZDRMJCGMNY6",
"extendedRequestId": "NKjiPDGEYKYtH7sHPWKSVpy9y9NtjbXzeJ7whq75y62jiH9JLuZOpMLCBiYyc+/hOlnOTCaTpWo=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Subscribe to SNS Topic

Subscribe to an Amazon SNS Topic for S3 Event Notifications | key: subscribeToTopic

Output Example Payload

{
"data": {
"SubscriptionArn": "arn:aws:sns:us-east-2:123456789012:MyExampleTopic:00000000-00000000-00000000-00000000"
}
}

Unsubscribe from a SNS Topic

Unsubscribe from an Amazon SNS Topic for S3 Event Notifications | key: unsubscribeFromTopic

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "059f8a07-f312-5e3b-9b7c-d46e66ee8a58",
"extendedRequestId": null,
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Update SNS Topic Policy For S3 Event Notification

Update an Amazon SNS Topic Policy to grant S3 permission to publish | key: updateTopicPolicy

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "b81eb768-e79a-52a1-9be8-e90175212345",
"extendedRequestId": null,
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
}
}
}

Upload Part

Upload a chunk of a multipart file upload | key: uploadPart

Output Example Payload

{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "3Z9FSV3QYRYCK123",
"extendedRequestId": "nhNCxtYGnVN+nxfdPaCPgAc23cJw2rphbIU1Z5ZUEmUDXIvF+Ra3eUXv2MNdOoWTIKXEym12345=",
"cfId": null,
"attempts": 1,
"totalRetryDelay": 0
},
"ServerSideEncryption": "AES256",
"ETag": "\"266b7131485849fcefe583dcce071234\"",
"part": {
"ETag": "\"266b7131485849fcefe583dcce071234\"",
"PartNumber": 1
}
}
}