Awsclaw S3
awsclaw-s3
Manage Amazon S3 buckets and objects using awsclaw. Create, configure, and delete buckets, upload/download objects, inspect bucket configuration (encryption, versioning, lifecycle, replication, logging, CORS, website), query object content with S3 Select, and open the S3 Explorer view.
SKILL.md
Full skill instructions
Awsclaw S3
Manage Amazon S3 buckets and objects through the awsclaw 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 awsclaw-s3-fileops skill)
