s3

Upload local directory trees to S3-compatible storage with correct MIME types.

1|Updated Jan 29, 2026
One-click install
npx skills add https://github.com/yugasun/skills --skill s3
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: s3
Source: https://github.com/yugasun/skills/tree/main/skills/s3
Command: npx skills add https://github.com/yugasun/skills --skill s3

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires boto3, botocore, and includes scripts (resource) components.

What problem does it solve?

This Skill automates uploading local content (like slides or static sites) to S3 or S3-compatible storage services (e.g., MinIO, Aliyun OSS) for public hosting and easy distribution.

Core Features & Use Cases

  • S3 Deployment: Uploads a directory tree while preserving structure and sets the correct MIME types for static hosting.
  • Flexible Endpoints: Supports AWS S3, S3-compatible endpoints, and optional custom domains.
  • Use Case: Deploy a generated slides site to a bucket and share a public URL with minimal configuration.

Quick Start

Use the s3 skill to publish a local site directory to an S3 bucket: uv run {baseDir}/scripts/upload_to_s3.py "slides/my-presentation/dist" "my-bucket" --prefix "presentations/my-presentation"

Frequently Asked Questions about s3

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a static site to S3 using a Python script?

To deploy a static site to S3, run the upload script with your local directory and target bucket as arguments. The script uploads the directory tree while preserving its structure and automatically sets the correct Content-Type for each file to enable public hosting.

Can I use boto3 to upload files to MinIO or other S3-compatible storage?

Yes, you can use boto3 to upload files to S3-compatible storage like MinIO or Aliyun OSS. The script supports flexible endpoints, allowing you to configure custom S3-compatible URLs for your static site uploads instead of being restricted to AWS.

What environment variables are required to upload content to an S3 bucket?

Uploading content to an S3 bucket requires three environment variables: S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, and S3_BUCKET. These credentials authenticate the boto3 client to perform the directory upload to your target storage.

Does the S3 upload script preserve directory structure and MIME types for static hosting?

Yes, the S3 upload script preserves your local directory structure during the upload and sets the correct MIME types for each file. This ensures that static assets like HTML, CSS, and JavaScript are served with the proper Content-Type headers for public distribution.

What's the best way to automate publishing presentation slides to an S3 bucket?

The best way to automate publishing presentation slides is using a dedicated Python script that uploads your generated slides directory to an S3 bucket. By passing a prefix path, you can organize multiple presentations within a single bucket for easy public sharing.

Do I need Python 3 and boto3 installed to deploy static assets to S3?

Yes, you need Python 3 and the boto3 library installed to run the upload script. These dependencies are required to authenticate with S3-compatible storage, read local files, and execute the automated directory upload process.