三款容量可观且不限制流量的 WebDAV 网盘服务,可以用作Cherry Studio 备份或者其他webdav方式备份服务

图片
无论是备份 Cherry Studio 的配置,还是多端同步 Obsidian 笔记,它都不可或缺。 1.  https://koofr.eu/ Koofr 是一家位于塞尔维亚的公司,受欧盟法律监管,在隐私保护方面相对可靠。它不仅是一个存储空间,更是一个云盘管理工具。 核心亮点: 免费容量: 默认提供 10GB 免费空间。 聚合功能: 支持挂载 Dropbox、Google Drive、OneDrive 等外部云盘,你甚至可以通过 Koofr 的 WebDAV 接口间接访问这些不支持 WebDAV 的网盘。 配置流程: 注册 Koofr.net 账号。 进入设置页面(Preferences -> Password),生成一个新的 应用密码(App Password) 。 在支持 WebDAV 的软件中填入: URL: https://app.koofr.net/dav/Koofr 用户名: 你的注册邮箱 密码: 刚刚生成的应用密码 2. InfiniCloud —— 高速稳定的日本网盘 InfiniCloud(原名 Tera Cloud)是一家老牌的日本云存储服务商。由于服务器位于日本,对于部分亚洲用户来说,连接速度和稳定性通常表现不错。 核心亮点: 容量潜力: 虽然新注册用户的初始容量需要确认,但该平台经常有扩容活动(老用户曾获赠 35GB),值得尝试。 原生支持: 对 WebDAV 的支持非常成熟,配置简单。 配置流程: 注册账号后登录“My Page”。 在设置中开启“Apps Connection”并生成 应用密码 。 在软件中填入: URL: https://domi.teracloud.jp/dav/ 用户名: 设置页显示的 User ID 密码: 生成的应用密码 3. 来自德国的云存储服务—— Hubu.cloud 。它不仅提供慷慨的免费容量,还对 WebDAV 提供了原生支持 核心亮点 超大免费空间: 注册即提供 64GB 的免费存储空间。 原生 WebDAV 支持: 方便配合各类第三方工具(如 Zotero, Obsidian 等)进行数据同步。 无限制体验: 不限制上传文件的大小,也不限制文件类型。 网络友好: 据用户反馈,国内连接速度快,无需代理即可直接访问。 文件分享: 支持直接分享文件给他人...

MoonTv 一键搭建数据接口


使用方法:  https://moontv.gyx.workers.dev/?url=https://raw.githubusercontent.com/666zmy/MoonTV/refs/heads/main/config.json&pretty=true


addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  try {
    // 解析 URL 参数
    const url = new URL(request.url)
    const targetUrl = url.searchParams.get('url')
   
    if (!targetUrl) {
      return new Response('Missing url parameter', { status: 400 })
    }
   
    // 验证 URL 格式
    try {
      new URL(targetUrl)
    } catch {
      return new Response('Invalid URL format', { status: 400 })
    }
   
    // 从远程获取 JSON
    const response = await fetch(targetUrl)
   
    if (!response.ok) {
      return new Response(`Failed to fetch: ${response.status}`, { status: response.status })
    }
   
    const jsonData = await response.json()
   
    // 对 JSON 做 base58 编码
    const jsonString = JSON.stringify(jsonData)
    const encoded = base58Encode(jsonString)
   
    return new Response(encoded, {
      headers: {
        'Content-Type': 'text/plain',
        'Access-Control-Allow-Origin': '*'
      }
    })
   
  } catch (error) {
    return new Response(`Error: ${error.message}`, { status: 500 })
  }
}

// Base58 编码实现
function base58Encode(str) {
  const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
  const bytes = new TextEncoder().encode(str)
 
  if (bytes.length === 0) return ''
 
  let num = BigInt('0x' + Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join(''))
 
  if (num === 0n) return ALPHABET[0]
 
  let result = ''
  while (num > 0n) {
    result = ALPHABET[Number(num % 58n)] + result
    num = num / 58n
  }
 
  // 处理前导零
  for (let i = 0; i < bytes.length && bytes[i] === 0; i++) {
    result = ALPHABET[0] + result
  }
 
  return result
}

评论

此博客中的热门博文