Communitygithub.com

baronguyen001/ai-automation-skills

S3 호환 스토리지에서 실행 아티팩트를 업로드 및 다운로드하며, 사용자가 자체 버킷(BYO)과 환경 변수로 자격 증명을 제공합니다. 스크래퍼 출력 저장, 보고서 보관, 아티팩트를 객체 스토리지에 게시, 이전 실행 파일 가져오기, 또는 MinIO/R2/Spaces/S3를 자격 증명 하드코딩 없이 사용해야 할 때 이 스킬을 사용하세요.

ai-automation-skills란 무엇인가요?

이 스킬은 AI 에이전트(예: Claude Code, Cursor, Codex)가 S3 호환 객체 스토리지에 아티팩트(CSV, PDF, JSON, 스크린샷, 로그 등)를 업로드 및 다운로드할 수 있도록 지원합니다. 환경 변수(`S3_BUCKET`, `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_ENDPOINT_URL`, `S3_REGION`)를 통해서만 자격 증명과 설정을 읽어들이므로 코드에 민감한 정보가 하드코딩되지 않으며 보안과 이식성이 보장됩니다. AWS S3뿐 아니라 MinIO, Cloudflare R2, DigitalOcean Spaces 등 모든 S3 호환 스토리지를 지원하므로 다양한 인프라에서 사용 가능합니다. 주요 사용 사례는 스크래핑 결과 업로드, 보고서 보관, JSON 체크포인트 저장, 로그 보존 등이며, 이전 실행 파일을 가져오는 다운로드 기능도 포함되어 있습니다. 사용자는 간단한 `upload_file()`과 같은 Python 함수를 호출하여 아티팩트를 내구성 있는 저장소에 저장하거나 검색할 수 있습니다. 이 스킬은 여러 자동화 프로젝트의 실제 운영 경험에서 추출되었으며, CSV 보고서 작성기, Playwright PDF 스냅샷, 파이프라인 오케스트레이터 등의 다른 스킬과 함께 사용할 수 있도록 설계되었습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/baronguyen001/ai-automation-skills/tree/HEAD/skills/s3-uploader

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

S3 업로더

이 스킬은 자동화 실행 시 CSV 보고서, PDF, JSON 체크포인트, 스크린샷, 모델 출력, 로그 등 로컬 머신 외부에 보관해야 하는 내구성 있는 아티팩트 저장이 필요할 때 사용합니다. 도우미는 일반적인 S3 호환 스토리지를 대상으로 하며, 버킷, 엔드포인트, 자격 증명을 환경 변수에서만 읽어옵니다.

호출 시기

  • 사용자가 말합니다: "이 보고서를 S3에 업로드해줘", "아티팩트를 객체 스토리지에 저장해줘", "마지막 실행 파일을 다운로드해줘", "MinIO/R2/Spaces를 사용해줘".
  • 대화 중인 코드가 로컬로 파일을 생성하지만, 이식 가능한 전달 또는 보관 위치가 필요합니다.

호출하지 말아야 할 때

  • 아티팩트가 동일한 프로세스 내에서만 필요하면 디스크에 유지합니다.
  • 사용자가 캐시 무효화와 서명된 URL이 포함된 공개 웹 사이트 CDN 워크플로를 필요로 합니다.

구체적인 예시

사용자 입력:

스크래퍼가 끝난 후 생성된 CSV를 내 S3 호환 버킷에 업로드해줘.

출력:

# assets/s3.py를 프로젝트에 복사한 후 다음을 실행:
from s3 import upload_file

key = upload_file("out/daily_report.csv", key="reports/daily_report.csv")
print("업로드됨:", key)

도우미는 환경 변수 S3_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, 선택적 S3_ENDPOINT_URL, 선택적 S3_REGION을 읽어옵니다. 대상별 비밀 정보는 커밋되지 않습니다.

적용할 패턴

  1. 버킷 이름, 엔드포인트, 액세스 키, 시크릿 키는 환경 변수에만 유지합니다.
  2. reports/YYYY-MM-DD/name.csv와 같은 결정론적 객체 키를 사용하여 재실행 시 쉽게 찾을 수 있도록 합니다.
  3. 로컬 파일이 완전히 작성된 후에만 업로드하며, 절반만 작성된 아티팩트를 스트리밍하지 않습니다.
  4. AWS를 하드코딩하는 대신 endpoint_url을 전달하여 S3 호환 엔드포인트를 지원합니다.
  5. 환경 변수나 클라이언트 라이브러리가 누락된 경우 명확한 구성 오류로 실패합니다.

참고: assets/s3.py.

출처

저자의 자동화 프로젝트 전반에 걸친 프로덕션 사용 경험에서 추출되었습니다. v1.0.0. 또한 다음을 참조하세요: [[csv-report-writer]], [[playwright-pdf-snapshot]], [[pipeline-orchestrator]].

→ Trawlkit으로 완전한 실행 가능한 봇을 구축하세요.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

baronguyen001/ai-automation-skills

Schedule any script to run on a recurring schedule on Windows (Task Scheduler) or Linux (cron) - register, list, and remove jobs from one command, with logging to a file and a guard against overlapping runs. Use for schedule a script, run nightly, set up a cron job, windows task scheduler, or run on a timer.

baronguyen001/ai-automation-skills

Turn a run's list of result dicts into a schema'd CSV and a Markdown table from one column spec - declare columns once, emit both, with stable ordering and safe escaping, stdlib only, no pandas. Use when the user asks to write results to CSV, export a report, make a markdown summary table, or save a run's output as a spreadsheet.

baronguyen001/ai-automation-skills

Strip HTML to clean plain text with the standard library only (no BeautifulSoup/lxml): drops script/style, turns block tags into line breaks, and collapses whitespace. Use when the user wants readable text from an HTML page/email, to clean scraped HTML before sending it to an LLM, or to build a text index from web content.

baronguyen001/ai-automation-skills

Persist records between scheduled runs as append-only JSON Lines (one object per line) with streaming reads and optional key-based dedup, stdlib only. Use when the user wants to log run results to JSONL, append events to a file, dedup records by id across runs, or keep a simple durable history without a database.

baronguyen001/ai-automation-skills

Extract text and simple table-like rows from a PDF for downstream AI without OCR binaries. Use when the user asks to read a PDF, turn a PDF into text, pull simple tables from statements/reports, or feed PDF content into an LLM pipeline.

baronguyen001/ai-automation-skills

Rotate a pool of HTTP/SOCKS proxies with round-robin selection, failure tracking, and a cooldown that benches dead proxies before retrying. BYO proxy list via env - none are shipped. Use for rotate proxies, spread requests across proxies, avoid IP bans, retry through a different proxy, or proxy health check.

baronguyen001/ai-automation-skills

Parse an RSS 2.0 or Atom feed into normalized item dicts (title, link, id, published, summary) with the standard library only - no feedparser. Use when the user asks to read an RSS/Atom feed, poll a blog/news feed, extract feed entries, or watch a site that publishes a feed.

baronguyen001/ai-automation-skills

Draft a short-form TikTok/Reels/Shorts or long-form video script from a topic and creator persona file - hook variants, beat-structured body, CTA, b-roll cues, caption overlays, and [STORY]/[NUMBER] slots so the model never fabricates personal facts. Use for write a video script, tiktok script, youtube script, or /shortform-script.

baronguyen001/ai-automation-skills

Give scheduled scripts memory between runs with one SQLite file - a seen-set for dedup, a key/value cursor to resume where you left off, and order-preserving new-item filtering. Use for dedup across runs, don't re-alert the same item, remember the last id, resume a scraper, or persist state between cron runs.

관련 스킬