galdrive:

分支2Tags0
当前项目代码仓暂无内容

galdrive

galdrive正在重写

galdrive分为3部分:

  • CID到HTTP资源的映射
  • 配套的客户端
  • CBOR-DAG

关于CBOR-DAG的规范:

  • CID为文件的base32 multihash
  • 文件的大小信息会存储在目录中
  • 每个条目可附带元数据,用于媒体管理与检索

客户端:

  • 从IO源导入文件
  • 管理本地的flatfs仓库

IO源抽象层:

  • 将存档内的单个文件映射为1个IO源
  • 将网盘的私有API映射为1个IO源

编码方式是确定性CBOR。

directory = {
    version: uint,          ; 目录草案版本号
    entries: [* entry]      ; 条目列表
}

entry = {
    cid: bstr,              ; base32 multihash 的二进制形式
    size: uint,             ; 文件或文件夹大小(单位:字节)
    name: tstr,             ; 名称(空字符串表示当前目录)
    type: uint,             ; 0=文件夹,1=文件,2=符号链接
    ? meta: { * tstr => tstr }  ; 可选元数据键值对
}

文件夹的大小为所含所有项的大小的和。

元数据字段(meta)

meta 是一个可选的 tstr -> tstr 字典,用于记录文件的附加属性,典型用途包括媒体管理与检索。

常见元数据键:

说明 示例值
mime MIME 类型 image/jpeg
title 作品标题 星空.jpg
artist 作者/艺术家 John Doe
lang 语言 (BCP 47) zh-CN
tags 逗号分隔的标签列表 同人,东方,表情包
description 描述文本 第3话的封面插图
source 来源标识符 pid=12345678
created 创建时间 (RFC 3339) 2024-01-15T10:30:00Z
duration 时长(秒) 120
width 宽度(像素) 1920
height 高度(像素) 1080
codec 编码格式 h264
bitrate 比特率 (kbps) 320
thumb 缩略图 CID sha3-256_ABCD...
extra JSON 扩展信息 {"page":3,"total":42}

使用约定:

  • 所有键和值均为字符串。
  • 开发者可自定义额外键,无需修改规范本身。
  • tags 使用逗号分词以保持简单性;如需更精确的表达,可将序列化后的 JSON 放入 extra

冷启动

收集数据的方式为用户提交或爬虫

项目介绍

暂无简介

定制我的领域