|
本帖最后由 52Fancy 于 2024-5-2 11:06 编辑
- export default {
- async fetch(request, env) {
- if (request.method == 'GET') {
- try {
- const code = request.url.split('/').pop();
- if (code){
- const value = await env.file.get(code)
- if (value == null) {
- return new Response("Value not found", {status: 404})
- }
- return new Response(value)
- }else{
- return new Response('Usage: curl -k -F "file=@文件" ' + request.url.slice(0, -1))
- }
- }catch (e){
- return new Response(e.message, {status: 500})
- }
- }
- if (request.method == 'POST') {
- try {
- const formData = await request.formData()
- const file = formData.get('file')
- if (file){
- const fileName = getName()
- await env.file.put(fileName, file.stream(), {expirationTtl: 300})
- return new Response('"link":"' + request.url + fileName + '"' )
- }else{
- return new Response('Usage: curl -k -F "file=@文件" ' + request.url.slice(0, -1))
- }
- }catch (e){
- return new Response(e.message, {status: 500})
- }
- }
- }
- }
- // 生成一个唯一的文件名
- function getName() {
- let randomString = '';
- const alphabet = 'abcdefghijklmnopqrstuvwxyz'
- for (let i = 0; i < 5; i++) {
- randomString += alphabet.charAt(Math.floor(Math.random() * alphabet.length))
- }
- return randomString + Date.now()
- }
复制代码
新建Cloudflare Workers 和 Cloudflare KV
在Cloudflare Workers ->设置 ->变量 ->KV 命名空间绑定 ->添加绑定 ->变量名称填写file ->KV 命名空间选择刚才新建的KV ->部署
把index.js代码复制粘贴到Workers部署
- Usage: curl -k -F "file=@文件" 你的Workers域名
复制代码
cloudflare真是个大善人,用wokres和kv来创建一个临时的文件上传服务器,虽然有限制,但是白女票还是很香的。
详情请看 https://github.com/52fancy/NetInstallAlpine |
|