Awsflow S3
Manage Amazon S3 buckets and objects through the awsflow S3Tool.
When to Use This Skill
Use this skill when the user:
- Asks about S3 buckets or objects
- Wants to list, upload, download, copy, or delete S3 objects
- Needs to inspect bucket configuration (encryption, versioning, lifecycle, etc.)
- Wants to query CSV/JSON/Parquet files with S3 Select SQL
- Wants to open the interactive S3 Explorer view
- Needs to check bucket policies, notifications, or replication settings
- Wants to create or delete buckets or update bucket settings
Tool: S3Tool
Execute S3 commands including bucket configuration. ALWAYS provide params object.
Commands
ListBuckets
List all S3 buckets in the account.
{ "command": "ListBuckets", "params": {} }
Parameters: None required.
ListObjectsV2
List objects in a bucket with optional prefix/delimiter filtering.
{ "command": "ListObjectsV2", "params": { "Bucket": "my-bucket", "Prefix": "data/", "Delimiter": "/", "MaxKeys": 100 } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Prefix | string | No | Filter objects by prefix path |
| Delimiter | string | No | Delimiter character for grouping keys, typically / |
| MaxKeys | number | No | Maximum number of keys to return |
| ContinuationToken | string | No | Token for pagination from previous response |
| StartAfter | string | No | Start listing after this key name |
ListObjectVersions
List object versions in a versioning-enabled bucket.
{ "command": "ListObjectVersions", "params": { "Bucket": "my-bucket", "Prefix": "data/" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Prefix | string | No | Filter objects by prefix |
| Delimiter | string | No | Delimiter for grouping |
| MaxKeys | number | No | Maximum versions to return |
| KeyMarker | string | No | Key marker for version pagination |
| VersionIdMarker | string | No | Version ID marker for pagination |
HeadBucket
Check if a bucket exists and you have access.
{ "command": "HeadBucket", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
HeadObject
Get metadata for an object without downloading it.
{ "command": "HeadObject", "params": { "Bucket": "my-bucket", "Key": "file.txt" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| VersionId | string | No | Specific version ID |
GetObject
Download or read an object's content.
{ "command": "GetObject", "params": { "Bucket": "my-bucket", "Key": "data.json", "AsText": true } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| VersionId | string | No | Specific version ID |
| DownloadToTemp | boolean | No | Download file to temp folder and return local path |
| AsText | boolean | No | Return file content as text for analysis |
PutObject
Upload content to an S3 object.
{ "command": "PutObject", "params": { "Bucket": "my-bucket", "Key": "data.json", "Body": "{\"key\":\"value\"}", "ContentType": "application/json" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| Body | string | No | Object content as string or base64 |
| ContentType | string | No | MIME type for the object |
| Metadata | object | No | Custom metadata key-value pairs |
DeleteObject
Delete an object from a bucket.
{ "command": "DeleteObject", "params": { "Bucket": "my-bucket", "Key": "old-file.txt" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| VersionId | string | No | Specific version ID to delete |
CopyObject
Copy an object within or between buckets.
{ "command": "CopyObject", "params": { "Bucket": "dest-bucket", "Key": "dest-key.txt", "CopySource": "/source-bucket/source-key.txt" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Destination bucket name |
| Key | string | Yes | Destination object key |
| CopySource | string | Yes | Source object path (format: /bucket/key) |
| Metadata | object | No | Custom metadata key-value pairs |
| MetadataDirective | string | No | COPY or REPLACE — how to handle metadata |
SelectObjectContent
Query CSV/JSON/Parquet object content using SQL expressions.
{
"command": "SelectObjectContent",
"params": {
"Bucket": "my-bucket",
"Key": "data.csv",
"Expression": "SELECT * FROM s3object s WHERE s.age > 30",
"ExpressionType": "SQL",
"InputSerialization": { "CSV": { "FileHeaderInfo": "USE" } },
"OutputSerialization": { "JSON": {} }
}
}
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| Expression | string | Yes | SQL expression for querying |
| ExpressionType | string | Yes | Type of expression (always SQL) |
| InputSerialization | object | Yes | Format of input data (CSV, JSON, Parquet) |
| OutputSerialization | object | Yes | Format for output data (CSV, JSON) |
GetObjectAttributes
Get specific attributes of an object.
{ "command": "GetObjectAttributes", "params": { "Bucket": "my-bucket", "Key": "file.txt", "ObjectAttributes": ["ObjectSize", "StorageClass"] } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| ObjectAttributes | array | Yes | Attributes to retrieve: ETag, Checksum, ObjectParts, StorageClass, ObjectSize |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetObjectLegalHold
Get the legal hold status of an object.
{ "command": "GetObjectLegalHold", "params": { "Bucket": "my-bucket", "Key": "file.txt" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetObjectRetention
Get the retention settings of an object.
{ "command": "GetObjectRetention", "params": { "Bucket": "my-bucket", "Key": "file.txt" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | Yes | Object key path |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
Bucket Configuration and Lifecycle Commands
CreateBucket
Create a new bucket.
{ "command": "CreateBucket", "params": { "Bucket": "my-new-bucket" } }
DeleteBucket
Delete an empty bucket.
{ "command": "DeleteBucket", "params": { "Bucket": "my-old-bucket" } }
PutBucketVersioning
Enable or suspend versioning.
{ "command": "PutBucketVersioning", "params": { "Bucket": "my-bucket", "VersioningConfiguration": { "Status": "Enabled" } } }
PutBucketEncryption
Set default bucket encryption.
{ "command": "PutBucketEncryption", "params": { "Bucket": "my-bucket", "ServerSideEncryptionConfiguration": { "Rules": [{ "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } }] } } }
PutBucketLifecycleConfiguration
Set lifecycle rules.
{ "command": "PutBucketLifecycleConfiguration", "params": { "Bucket": "my-bucket", "LifecycleConfiguration": { "Rules": [] } } }
PutBucketTagging
Set bucket tags.
{ "command": "PutBucketTagging", "params": { "Bucket": "my-bucket", "Tagging": { "TagSet": [{ "Key": "env", "Value": "prod" }] } } }
PutBucketPolicy
Set a bucket policy.
{ "command": "PutBucketPolicy", "params": { "Bucket": "my-bucket", "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::my-bucket/*\"]}]}" } }
DeleteBucketPolicy
Delete a bucket policy.
{ "command": "DeleteBucketPolicy", "params": { "Bucket": "my-bucket" } }
PutObjectTagging
Set object tags.
{ "command": "PutObjectTagging", "params": { "Bucket": "my-bucket", "Key": "file.txt", "Tagging": { "TagSet": [{ "Key": "type", "Value": "report" }] } } }
DeleteObjectTagging
Remove object tags.
{ "command": "DeleteObjectTagging", "params": { "Bucket": "my-bucket", "Key": "file.txt" } }
GetBucketLocation
Get the region where a bucket is located.
{ "command": "GetBucketLocation", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketEncryption
Get the default encryption configuration.
{ "command": "GetBucketEncryption", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketVersioning
Get the versioning state of a bucket.
{ "command": "GetBucketVersioning", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketLifecycleConfiguration
Get lifecycle configuration rules.
{ "command": "GetBucketLifecycleConfiguration", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketReplication
Get cross-region replication configuration.
{ "command": "GetBucketReplication", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketLogging
Get server access logging configuration.
{ "command": "GetBucketLogging", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketTagging
Get bucket tags.
{ "command": "GetBucketTagging", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketCors
Get CORS configuration.
{ "command": "GetBucketCors", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketWebsite
Get static website hosting configuration.
{ "command": "GetBucketWebsite", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketAccelerateConfiguration
Get transfer acceleration configuration.
{ "command": "GetBucketAccelerateConfiguration", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketRequestPayment
Get requester-pays configuration.
{ "command": "GetBucketRequestPayment", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| ExpectedBucketOwner | string | No | Expected bucket owner account ID |
GetBucketPolicy
Get the bucket policy JSON.
{ "command": "GetBucketPolicy", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
GetBucketNotificationConfiguration
Get event notification configuration (triggers to SNS/SQS/Lambda).
{ "command": "GetBucketNotificationConfiguration", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
OpenS3Explorer
Open the interactive S3 Explorer view for a bucket.
{ "command": "OpenS3Explorer", "params": { "Bucket": "my-bucket", "Prefix": "data/" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
| Key | string | No | Object key to focus on |
| Prefix | string | No | Prefix/folder to open |
Related Services
- S3 → SNS/SQS/Lambda: Use
GetBucketNotificationConfigurationto see event notification targets - S3 → CloudTrail: S3 data events are logged to CloudTrail, viewable in CloudWatch Logs
- S3 → Glue: Glue crawlers catalog S3 data; Glue jobs read/write S3
- S3 → EMR: EMR clusters use S3 for input/output data (EMRFS)
- S3 → CloudFormation: S3 buckets are commonly managed by CloudFormation stacks
- S3 → IAM: Bucket policies and IAM policies control access; use
IAMToolSimulatePrincipalPolicyto test - S3 File Operations: For bulk upload/download of files and folders, use the
S3FileOperationsTool(see awsflow-s3-fileops skill)
