[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MSRSJ6ENJV3S2GDAKFQBER":3,"skill-same:01M6MSRSJ6ENJV3S2GDAKFQBER":115},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6MSRSJ6ENJV3S2GDAKFQBER","Send Me My Files - R2 upload with short lived signed urls",null,"Upload files to Cloudflare R2, AWS S3, or any S3-compatible storage and generate secure presigned download links with configurable expiration.","Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"send","short","files","my","send me my files r2 upload with short lived signed urls","me","upload","r2","with","aws s3","for","bucket","links","Cloud Storage","minio","MCP","mcp skill","default","interactive","cloudflare","2026-11-10 10:12:30",false,"---\nname: Send Me My Files - R2 upload with short lived signed urls\ndescription: Upload files to Cloudflare R2, AWS S3, or any S3-compatible storage and generate secure presigned download links with configurable expiration.\nsummary: 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.\n---\n\n# Send Me My Files - R2 Upload with Short Lived Signed URLs\n\nUpload files to Cloudflare R2 or any S3-compatible storage and generate presigned download links.\n\n## Features\n\n- Upload files to R2\u002FS3 buckets\n- Generate presigned download URLs (configurable expiration)\n- Support for any S3-compatible storage (R2, AWS S3, MinIO, etc.)\n- Multiple bucket configurations\n- Automatic content-type detection\n\n## Configuration\n\nCreate `~\u002F.r2-upload.yml` (or set `R2_UPLOAD_CONFIG` env var):\n\n```yaml\n# Default bucket (used when no bucket specified)\ndefault: my-bucket\n\n# Bucket configurations\nbuckets:\n  my-bucket:\n    endpoint: https:\u002F\u002Fabc123.r2.cloudflarestorage.com\n    access_key_id: your_access_key\n    secret_access_key: your_secret_key\n    bucket_name: my-bucket\n    public_url: https:\u002F\u002Ffiles.example.com  # Optional: custom domain\n    region: auto  # For R2, use \"auto\"\n    \n  # Additional buckets\n  personal:\n    endpoint: https:\u002F\u002Fxyz789.r2.cloudflarestorage.com\n    access_key_id: ...\n    secret_access_key: ...\n    bucket_name: personal-files\n    region: auto\n```\n\n### Cloudflare R2 Setup\n\n1. Go to Cloudflare Dashboard → R2\n2. Create a bucket\n3. Go to R2 API Tokens: `https:\u002F\u002Fdash.cloudflare.com\u002F\u003CACCOUNT_ID>\u002Fr2\u002Fapi-tokens`\n4. Create a new API token\n   - **Important:** Apply to specific bucket (select your bucket)\n   - Permissions: Object Read & Write\n5. Copy the Access Key ID and Secret Access Key\n6. Use endpoint format: `https:\u002F\u002F\u003Caccount_id>.r2.cloudflarestorage.com`\n7. Set `region: auto`\n\n### AWS S3 Setup\n\n```yaml\naws-bucket:\n  endpoint: https:\u002F\u002Fs3.us-east-1.amazonaws.com\n  access_key_id: ...\n  secret_access_key: ...\n  bucket_name: my-aws-bucket\n  region: us-east-1\n```\n\n## Usage\n\n### Upload a file\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf\n# Returns: https:\u002F\u002Ffiles.example.com\u002Fabc123\u002Ffile.pdf?signature=...\n```\n\n### Upload with custom path\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --key uploads\u002F2026\u002Ffile.pdf\n```\n\n### Upload to specific bucket\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --bucket personal\n```\n\n### Custom expiration (default: 5 minutes)\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --expires 24h\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --expires 1d\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --expires 300  # seconds\n```\n\n### Public URL (no signature)\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --public\n```\n\n## Tools\n\n- `r2_upload` - Upload file and get presigned URL\n- `r2_list` - List recent uploads\n- `r2_delete` - Delete a file\n\n## Environment Variables\n\n- `R2_UPLOAD_CONFIG` - Path to config file (default: `~\u002F.r2-upload.yml`)\n- `R2_DEFAULT_BUCKET` - Override default bucket\n- `R2_DEFAULT_EXPIRES` - Default expiration in seconds (default: 300 = 5 minutes)\n\n## Notes\n\n- Uploaded files are stored with their original filename unless `--key` is specified\n- Automatic UUID prefix added to prevent collisions (e.g., `abc123\u002Ffile.pdf`)\n- Content-Type automatically detected from file extension\n- Presigned URLs expire after the configured duration\n","# Send Me My Files - R2 Upload with Short Lived Signed URLs\n\nUpload files to Cloudflare R2 or any S3-compatible storage and generate presigned download links.\n\n## Features\n\n- Upload files to R2\u002FS3 buckets\n- Generate presigned download URLs (configurable expiration)\n- Support for any S3-compatible storage (R2, AWS S3, MinIO, etc.)\n- Multiple bucket configurations\n- Automatic content-type detection\n\n## Configuration\n\nCreate `~\u002F.r2-upload.yml` (or set `R2_UPLOAD_CONFIG` env var):\n\n```yaml\n# Default bucket (used when no bucket specified)\ndefault: my-bucket\n\n# Bucket configurations\nbuckets:\n  my-bucket:\n    endpoint: https:\u002F\u002Fabc123.r2.cloudflarestorage.com\n    access_key_id: your_access_key\n    secret_access_key: your_secret_key\n    bucket_name: my-bucket\n    public_url: https:\u002F\u002Ffiles.example.com  # Optional: custom domain\n    region: auto  # For R2, use \"auto\"\n    \n  # Additional buckets\n  personal:\n    endpoint: https:\u002F\u002Fxyz789.r2.cloudflarestorage.com\n    access_key_id: ...\n    secret_access_key: ...\n    bucket_name: personal-files\n    region: auto\n```\n\n### Cloudflare R2 Setup\n\n1. Go to Cloudflare Dashboard → R2\n2. Create a bucket\n3. Go to R2 API Tokens: `https:\u002F\u002Fdash.cloudflare.com\u002F\u003CACCOUNT_ID>\u002Fr2\u002Fapi-tokens`\n4. Create a new API token\n   - **Important:** Apply to specific bucket (select your bucket)\n   - Permissions: Object Read & Write\n5. Copy the Access Key ID and Secret Access Key\n6. Use endpoint format: `https:\u002F\u002F\u003Caccount_id>.r2.cloudflarestorage.com`\n7. Set `region: auto`\n\n### AWS S3 Setup\n\n```yaml\naws-bucket:\n  endpoint: https:\u002F\u002Fs3.us-east-1.amazonaws.com\n  access_key_id: ...\n  secret_access_key: ...\n  bucket_name: my-aws-bucket\n  region: us-east-1\n```\n\n## Usage\n\n### Upload a file\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf\n# Returns: https:\u002F\u002Ffiles.example.com\u002Fabc123\u002Ffile.pdf?signature=...\n```\n\n### Upload with custom path\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --key uploads\u002F2026\u002Ffile.pdf\n```\n\n### Upload to specific bucket\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --bucket personal\n```\n\n### Custom expiration (default: 5 minutes)\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --expires 24h\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --expires 1d\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --expires 300  # seconds\n```\n\n### Public URL (no signature)\n\n```bash\nr2-upload \u002Fpath\u002Fto\u002Ffile.pdf --public\n```\n\n## Tools\n\n- `r2_upload` - Upload file and get presigned URL\n- `r2_list` - List recent uploads\n- `r2_delete` - Delete a file\n\n## Environment Variables\n\n- `R2_UPLOAD_CONFIG` - Path to config file (default: `~\u002F.r2-upload.yml`)\n- `R2_DEFAULT_BUCKET` - Override default bucket\n- `R2_DEFAULT_EXPIRES` - Default expiration in seconds (default: 300 = 5 minutes)\n\n## Notes\n\n- Uploaded files are stored with their original filename unless `--key` is specified\n- Automatic UUID prefix added to prevent collisions (e.g., `abc123\u002Ffile.pdf`)\n- Content-Type automatically detected from file extension\n- Presigned URLs expire after the configured duration\n",{"name":5,"summary":48,"description":7},"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.","main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","DevOps与云计算\u002Fr2-upload",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill \"Send Me My Files - R2 upload with short lived signed urls\"",{"tool":63,"command":64},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill \"Send Me My Files - R2 upload with short lived signed urls\"",{"tool":66,"command":67},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill \"Send Me My Files - R2 upload with short lived signed urls\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002FSKILL.md",true,[71,77,81,85,89,93,97,101,107,111],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"_meta.json","REFERENCE","参考文档",501,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002F_meta.json",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"CLAWDHUB.md",3304,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002FCLAWDHUB.md",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"example-config.yml",1164,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002Fexample-config.yml",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"package.json",1089,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002Fpackage.json",{"path":90,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":91,"sourceHtmlUrl":92},"pnpm-lock.yaml",79104,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002Fpnpm-lock.yaml",{"path":94,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":95,"sourceHtmlUrl":96},"README.md",3010,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002FREADME.md",{"path":98,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":99,"sourceHtmlUrl":100},"SECURITY.md",4867,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002FSECURITY.md",{"path":102,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":105,"sourceHtmlUrl":106},"src\u002Findex.ts","SCRIPT","脚本",12353,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002Fsrc\u002Findex.ts",{"path":108,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":109,"sourceHtmlUrl":110},"src\u002Fonboard.ts",7362,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002Fsrc\u002Fonboard.ts",{"path":112,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":113,"sourceHtmlUrl":114},"tsconfig.json",427,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FDevOps与云计算\u002Fr2-upload\u002Ftsconfig.json",[116,140,171,182,192,221],{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":43},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[118,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],"safe","ethereum","defi","Optimization","user","use","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":141,"name":142,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":154,"publishedAt":43},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[145,148,149],{"categoryNo":146,"categoryName":147,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":150,"categoryName":151,"taxonomyType":152,"taxonomyTypeDesc":153},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[155,156,157,38,158,159,160,125,161,129,162,163,164,165,166,167,168,169,170],"api","zerion api","zerion","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","token","prices",{"skillNo":172,"name":173,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":179,"publishedAt":43},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[176,177,178],{"categoryNo":146,"categoryName":147,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":150,"categoryName":151,"taxonomyType":152,"taxonomyTypeDesc":153},[155,180,181,156,157,38,158,159,160,125,161,129,163,164,165,166,167,168,169,170],"api skill","zerion api skill",{"skillNo":183,"name":184,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":190,"publishedAt":43},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[187,188,189],{"categoryNo":146,"categoryName":147,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":150,"categoryName":151,"taxonomyType":152,"taxonomyTypeDesc":153},[38,155,191,156,157,158,159,125,161,129,162,163,164,165,166,167,168,169,170],"zerion api mcp",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":201,"publishedAt":43},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[198],{"categoryNo":199,"categoryName":200,"taxonomyType":152,"taxonomyTypeDesc":153},"01JBSEEDCAT000000000000040","财务",[202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,33],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","https","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data",{"skillNo":222,"name":223,"nameZh":6,"description":224,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":225,"categories":226,"keywords":228,"publishedAt":43},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[227],{"categoryNo":199,"categoryName":200,"taxonomyType":152,"taxonomyTypeDesc":153},[202,203,205,229,230,231,232,233,234,213,235,236,237,238,239,240,241,242,170,220],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]