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.
Manage Amazon S3 buckets and objects through the awsclaw S3Tool.
Use this skill when the user:
Execute S3 commands including bucket configuration. ALWAYS provide params object.
List all S3 buckets in the account.
{ "command": "ListBuckets", "params": {} }
Parameters: None required.
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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) |
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 |
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 |
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 |
Create a new bucket.
{ "command": "CreateBucket", "params": { "Bucket": "my-new-bucket" } }
Delete an empty bucket.
{ "command": "DeleteBucket", "params": { "Bucket": "my-old-bucket" } }
Enable or suspend versioning.
{ "command": "PutBucketVersioning", "params": { "Bucket": "my-bucket", "VersioningConfiguration": { "Status": "Enabled" } } }
Set default bucket encryption.
{ "command": "PutBucketEncryption", "params": { "Bucket": "my-bucket", "ServerSideEncryptionConfiguration": { "Rules": [{ "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } }] } } }
Set lifecycle rules.
{ "command": "PutBucketLifecycleConfiguration", "params": { "Bucket": "my-bucket", "LifecycleConfiguration": { "Rules": [] } } }
Set bucket tags.
{ "command": "PutBucketTagging", "params": { "Bucket": "my-bucket", "Tagging": { "TagSet": [{ "Key": "env", "Value": "prod" }] } } }
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/*\"]}]}" } }
Delete a bucket policy.
{ "command": "DeleteBucketPolicy", "params": { "Bucket": "my-bucket" } }
Set object tags.
{ "command": "PutObjectTagging", "params": { "Bucket": "my-bucket", "Key": "file.txt", "Tagging": { "TagSet": [{ "Key": "type", "Value": "report" }] } } }
Remove object tags.
{ "command": "DeleteObjectTagging", "params": { "Bucket": "my-bucket", "Key": "file.txt" } }
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Get the bucket policy JSON.
{ "command": "GetBucketPolicy", "params": { "Bucket": "my-bucket" } }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Bucket | string | Yes | Bucket name |
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 |
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 |
GetBucketNotificationConfiguration to see event notification targetsIAMTool SimulatePrincipalPolicy to testS3FileOperationsTool (see awsclaw-s3-fileops skill)