Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aws-samples avatar

S3 User Files

  • 1 installs
  • 177 repo stars
  • Updated June 23, 2026
  • aws-samples/sample-host-openclaw-on-amazon-bedrock-agentcore

s3-user-files is a skill that gives a hosted agent per-user persistent file storage on AWS S3 with read, write, list, delete and presign tools.

About

Adds per-user persistent file storage backed by AWS S3 to a hosted agent. It exposes read, write, list, delete, and presign tools that operate on an isolated per-user S3 namespace so there is no cross-user data leakage. An agent uses it to save preferences, remember notes, and generate temporary download URLs across sessions, always keyed to the user_id from the system prompt.

  • Per-user S3 storage with read, write, list, delete and presign tools
  • Isolated namespace per user via S3 key prefix, no cross-user access
  • Path traversal sanitized and content encrypted at rest via S3 server-side encryption

S3 User Files by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #14,098 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
At a glance

s3-user-files capabilities & compatibility

Runs against an AWS S3 bucket inside the AgentCore host; incurs standard S3 storage and request charges.

Capabilities
agentcore browser
Works with
aws
Use cases
memory · orchestration
Runs
Hosted SaaS
Pricing
Bring your own API key
From the docs

What s3-user-files says it does

Per-user persistent file storage backed by AWS S3. Each user's files are stored in an isolated namespace — no cross-user data leakage.
SKILL.md
Files are isolated per user via S3 key prefix: `{user_id}/{filename}`
SKILL.md
npx skills add https://github.com/aws-samples/sample-host-openclaw-on-amazon-bedrock-agentcore --skill s3-user-files

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars177
Last updatedJune 23, 2026
Repositoryaws-samples/sample-host-openclaw-on-amazon-bedrock-agentcore

What it does

Give a hosted agent per-user persistent file storage on S3 to save, read, list and delete user data across sessions.

Who is it for?

Agents that need to persist and recall user-specific data across sessions with isolation

Skip if: Shared or cross-user data, since each user's files are isolated by namespace

When should I use this skill?

The user asks to save, remember, or persist information across sessions

What you get

User data is saved to and read from an isolated per-user S3 namespace with presigned download URLs.

  • Persisted user files
  • File listings
  • Presigned download URLs

By the numbers

  • Presigned URL default 3600s, max 604800s

Files

SKILL.mdMarkdownGitHub ↗

S3 User Files

Per-user persistent file storage backed by AWS S3. Each user's files are stored in an isolated namespace — no cross-user data leakage.

Important

Always use the user_id from the system prompt when calling these tools. Never hardcode or guess a user_id. The system provides it automatically.

Usage

read_user_file

Read a file from the user's persistent storage.

node {baseDir}/read.js <user_id> <filename>
  • user_id (required): The user's unique identifier (e.g., telegram_12345)
  • filename (required): The file name to read (e.g., IDENTITY.md)

write_user_file

Write content to a file in the user's persistent storage.

node {baseDir}/write.js <user_id> <filename> <content>
  • user_id (required): The user's unique identifier
  • filename (required): The file name to write
  • content (required): The text content to write

list_user_files

List all files in the user's persistent storage.

node {baseDir}/list.js <user_id>
  • user_id (required): The user's unique identifier

delete_user_file

Delete a file from the user's persistent storage.

node {baseDir}/delete.js <user_id> <filename>
  • user_id (required): The user's unique identifier
  • filename (required): The file name to delete

presign_user_file

Generate a temporary download URL (presigned URL) for a file. The URL is valid for 1 hour by default.

node {baseDir}/presign.js <user_id> <filename> [expires_in_seconds]
  • user_id (required): The user's unique identifier
  • filename (required): The file name to generate a URL for
  • expires_in_seconds (optional): URL validity in seconds (default: 3600, max: 604800)

Important: Always use this tool to generate presigned URLs. Do NOT use aws s3 presign CLI — it may produce SigV2 signatures that fail on KMS-encrypted buckets.

From Agent Chat

  • "Save my preferences" -> write_user_file with the user's preferences
  • "What do you remember about me?" -> read_user_file to check stored notes
  • "What's your name?" -> read_user_file IDENTITY.md for this user
  • "Forget everything about me" -> delete_user_file on each stored file
  • "What files do you have for me?" -> list_user_files
  • "Give me a download link for that file" -> presign_user_file
  • "Generate a presigned URL for my screenshot" -> presign_user_file

Security Notes

  • Files are isolated per user via S3 key prefix: {user_id}/{filename}
  • user_id uses underscores (e.g., telegram_12345) — colons are replaced
  • Content encrypted at rest via S3 server-side encryption
  • Bucket enforces SSL-only access
  • Path traversal attempts are sanitized (removes .., restricts characters)
  • Never use default_user as user_id — scripts reject it with an error

Related skills

FAQ

How is data isolated between users?

Files are isolated per user via an S3 key prefix of user_id/filename, so there is no cross-user data leakage.

How should presigned URLs be generated?

Always use the presign_user_file tool, not aws s3 presign, which may produce SigV2 signatures that fail on KMS-encrypted buckets.

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.