Julian Engel

Send Me My Files - R2 upload with short lived signed urls

开发编程v1.0.4
作者:Julian Engel更新于 2026-05-18共 5 个版本 · 最新版本发布于 2026-01-09r2-upload@clawhub_julianengel/r2-upload
后端开发脚本工具#Typescript

据 AlphaMoat 统计,截至 2026-10,Send Me My Files - R2 upload with short lived signed urls 累计下载 5,690 次、获 2 个星标,按累计下载量在本次参与排名的 5,109 个 AI 技能中排名第 2,437 位,在「开发编程」分类(560 个)中排名第 269 位。

列表默认按累计下载量排序,也可按星标排序;详情页排名按累计下载量计算。

累计下载
5,690
星标
2
全站下载量排名
#2,437
全站前 48% · 「开发编程」前 49%
平台累计下载星标评论
ClawHub ↗4,2672-
SkillHub ↗5,6902—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

将文件上传至 Cloudflare R2、AWS S3 或任意 S3 兼容存储,并生成可配置有效期的安全预签名下载链接。

月度数据趋势

累计下载5,690
3,3394,6025,8642026-05 · 累计下载 3,5132026-06 · 累计下载 3,6772026-07 · 累计下载 3,9242026-08 · 累计下载 4,0472026-09 · 累计下载 4,3012026-10 · 累计下载 5,69026-0526-0926-10
星标2
1232026-05 · 星标 22026-06 · 星标 22026-07 · 星标 22026-08 · 星标 22026-09 · 星标 22026-10 · 星标 226-0526-0926-10

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-105,690—2
2026-094,301—2
2026-084,047+3.1%2
2026-073,924+6.7%2
2026-063,677+4.7%2
2026-053,513—2

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

3.3 KB · ClawHub v1.0.4
---
name: Send Me My Files - R2 upload with short lived signed urls
description: Upload files to Cloudflare R2, AWS S3, or any S3-compatible storage and generate secure presigned download links with configurable expiration.
summary: TypeScript-based MCP skill for uploading files to cloud storage (R2, S3, MinIO) with secure, temporary download links. Features multi-bucket support, interactive onboarding, and 5-minute default expiration.
---

# Send Me My Files - R2 Upload with Short Lived Signed URLs

Upload files to Cloudflare R2 or any S3-compatible storage and generate presigned download links.
展开全部(共 122 行)
## Features

- Upload files to R2/S3 buckets
- Generate presigned download URLs (configurable expiration)
- Support for any S3-compatible storage (R2, AWS S3, MinIO, etc.)
- Multiple bucket configurations
- Automatic content-type detection

## Configuration

Create `~/.r2-upload.yml` (or set `R2_UPLOAD_CONFIG` env var):

```yaml
# Default bucket (used when no bucket specified)
default: my-bucket

# Bucket configurations
buckets:
  my-bucket:
    endpoint: https://abc123.r2.cloudflarestorage.com
    access_key_id: your_access_key
    secret_access_key: your_secret_key
    bucket_name: my-bucket
    public_url: https://files.example.com  # Optional: custom domain
    region: auto  # For R2, use "auto"
    
  # Additional buckets
  personal:
    endpoint: https://xyz789.r2.cloudflarestorage.com
    access_key_id: ...
    secret_access_key: ...
    bucket_name: personal-files
    region: auto
```

### Cloudflare R2 Setup

1. Go to Cloudflare Dashboard → R2
2. Create a bucket
3. Go to R2 API Tokens: `https://dash.cloudflare.com/<ACCOUNT_ID>/r2/api-tokens`
4. Create a new API token
   - **Important:** Apply to specific bucket (select your bucket)
   - Permissions: Object Read & Write
5. Copy the Access Key ID and Secret Access Key
6. Use endpoint format: `https://<account_id>.r2.cloudflarestorage.com`
7. Set `region: auto`

### AWS S3 Setup

```yaml
aws-bucket:
  endpoint: https://s3.us-east-1.amazonaws.com
  access_key_id: ...
  secret_access_key: ...
  bucket_name: my-aws-bucket
  region: us-east-1
```

## Usage

### Upload a file

```bash
r2-upload /path/to/file.pdf
# Returns: https://files.example.com/abc123/file.pdf?signature=...
```

### Upload with custom path

```bash
r2-upload /path/to/file.pdf --key uploads/2026/file.pdf
```

### Upload to specific bucket

```bash
r2-upload /path/to/file.pdf --bucket personal
```

### Custom expiration (default: 5 minutes)

```bash
r2-upload /path/to/file.pdf --expires 24h
r2-upload /path/to/file.pdf --expires 1d
r2-upload /path/to/file.pdf --expires 300  # seconds
```

### Public URL (no signature)

```bash
r2-upload /path/to/file.pdf --public
```

## Tools

- `r2_upload` - Upload file and get presigned URL
- `r2_list` - List recent uploads
- `r2_delete` - Delete a file

## Environment Variables

- `R2_UPLOAD_CONFIG` - Path to config file (default: `~/.r2-upload.yml`)
- `R2_DEFAULT_BUCKET` - Override default bucket
- `R2_DEFAULT_EXPIRES` - Default expiration in seconds (default: 300 = 5 minutes)

## Notes

- Uploaded files are stored with their original filename unless `--key` is specified
- Automatic UUID prefix added to prevent collisions (e.g., `abc123/file.pdf`)
- Content-Type automatically detected from file extension
- Presigned URLs expire after the configured duration

「开发编程」分类下的热门技能

数据月份:2026-10 · 下载/星标数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。