Lưu trữ R2 cho PinMe Worker
Kỹ năng hướng dẫn AI viết API upload/download/xóa file an toàn trên Cloudflare Worker của PinMe chỉ bằng binding env.R2.
Web · APITrung cấp★ 3,732⑂ 274Điểm AI 8/10Cập nhật lần cuối: 25 thg 7, 2026
Nó làm được gì
- Dùng binding
env.R2mà PinMe tự động tiêm vào mọi Worker: không cần tạo khóa truy cập, không sửa cấu hình Wrangler. - Cung cấp mã TypeScript cho từng route: upload dạng streaming, download hỗ trợ Range/điều kiện, HEAD lấy metadata, xóa, và liệt kê theo prefix chủ sở hữu.
- Bắt buộc trình tự bảo mật: xác thực → phân quyền → kiểm tra kích thước & MIME → sinh key phía server → gọi env.R2 → trả về phản hồi đã làm sạch.
- Phân vai R2 vs D1 (nội dung file ở R2, metadata tìm kiếm ở D1) kèm mẫu chuyển trạng thái pending → ready để bù trừ khi lỗi.
- Bảng mã lỗi (400/411/412/413/416...) và bảng chống mẫu xấu để tránh lỗi phổ biến.
Dành cho ai
- Lập trình viên triển khai backend Cloudflare Worker qua PinMe và cần tính năng tải file/ảnh.
- Người muốn sửa các API upload thiếu an toàn (tin object key hoặc userId do client gửi).
- Người dùng đồng thời R2 và D1 và cần xử lý vấn đề không có transaction chung.
Ví dụ sử dụng
- "Tạo endpoint upload ảnh" → handler kiểm tra Content-Length, danh sách MIME cho phép, stream
request.bodytrực tiếp vàoenv.R2.putvà kiểm lại kích thước thực đã lưu. - "Video không tua được" → thêm kiểm tra header Range, trả 206 với
content-range,accept-ranges, và 412 khi request điều kiện thất bại. - "API danh sách file của người dùng" → gọi
list()chỉ với prefix của người dùng đã xác thực và phân trang theopage.truncated.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/glitternetwork/pinme/HEAD/skills/pinme-r2/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/pinme-r2 từ repo GitHub glitternetwork/pinme vào ~/.claude/skills/pinme-r2/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/glitternetwork/pinme.git && mkdir -p ~/.claude/skills && cp -r pinme/skills/pinme-r2 ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal.
- Clone repo:
git clone https://github.com/glitternetwork/pinme.git - Tạo thư mục skills:
mkdir -p ~/.claude/skills - Sao chép kỹ năng:
cp -r pinme/skills/pinme-r2 ~/.claude/skills/ - Kiểm tra tệp
~/.claude/skills/pinme-r2/SKILL.mdđã tồn tại. - Khởi động lại Claude Code, rồi trong dự án PinMe Worker hãy yêu cầu ví dụ: "viết route upload file lên R2".
- Kỹ năng giả định môi trường Worker triển khai bằng PinMe (
pinme save/pinme update-worker), nên hãy cài PinMe CLI trước.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT