Към всички skills

pinme-r2

glitternetwork · Сигурност

Use when a PinMe Cloudflare Worker needs R2 object storage, including secure file or image upload, streaming download, metadata lookup, deletion, listing, Range requests, or R2+D1 coordination. Guides AI to use PinMe's automatically injected env.R2 binding without R2 credentials or manual Wrangler configuration.

Оригинален текст · няма потвърден превод на български

Теми: ai-tools · claude-code-skill · claude-skills · deployment · deployment-tools · frontend · frontend-deployment · hosting · serverless · skills · static-site · static-site-deploy · static-site-hosting · web-hosting · zero-configuration

Първо прочетете инструкцията.

Файлът се зарежда от посочения източник само по ваше действие. Можете да го прочетете тук, да го копирате или да го запазите като .md.

Оригинален SKILL.md
GitHub хранилище
Звезди на репото
3747
Лиценз
MIT
Последна проверка на записа
22.09.2026 г.

Добавете в своя инструмент.

Командата отваря избора на skills от репозитория. Прочетете файла и условията на автора преди изпълнение.

npx skills add glitternetwork/pinme

Страницата копира текст. Не инсталира и не изпълнява нищо на устройството ви.

Откъс от SKILL.md

Началото на файла на автора, без превод.

PinMe Worker R2 Storage

Use the project-scoped R2 bucket that PinMe binds to every deployed Worker as env.R2. Do not create credentials, choose a bucket name, or edit generated Wrangler configuration.

Runtime Contract

PinMe rebuilds trusted Worker metadata on create, save, and update. Client metadata cannot replace the R2 binding.

BindingTypeScript typeAvailability
DBD1DatabaseAlways injected
R2R2BucketAlways injected; current project's bucket
API_KEYstringAlways injected
LLM_API_KEYstringAlways injected
BASE_URLstringAlways injected
WORKER_URLstringAlways injected
PROJECT_NAMEstringAlways injected

Payment-specific bindings such as UNIWEB_SECRET are conditional and unrelated to R2 access.

Declare only the bindings used by the Worker module. R2 code normally starts with:

export interface Env {
  R2: R2Bucket;
  PROJECT_NAME: string;
  WORKER_URL: string;
}

When the same module coordinates file metadata in D1, also declare DB: D1Database as a required field.

Choose R2 or D1

  • Use R2 for file bodies, images, attachments, media, exports, and other objects addressed by key.
  • Use D1 for searchable business metadata, ownership, relations, status, and audit fields.
  • For managed files, store the body in R2 and store only its key and business metadata in D1.
  • Never use Worker local filesystem state for persistence and never store complete files or base64 payloads in D1.

Required Security Workflow

Apply this sequence to every upload, download, metadata, delete, and list route:

authenticate request
→ authorize the project/user action
→ validate size and media policy
→ generate or normalize a scoped object key
→ call env.R2
→ return a sanitized response

Use the application's existing authentication. The examples below accept a trusted userId that the route must obtain from verified identity claims, never from an untrusted request body or query parameter.

Keep object keys server-controlled. Prefer opaque IDs under an owner prefix:

Целият SKILL.md в GitHub