当前项目代码仓暂无内容
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。
冷启动
收集数据的方式为用户提交或爬虫