当你的日历变成了一个文件系统
当WhenFS将你的Google日历转变成一个FUSE文件系统。它以一种富有幻想的方式支持以下功能:
- 从现有的Google日历创建一个文件系统,或从头开始创建一个新的文件系统
- 读写文件、目录,以及其他文件和目录
- 挂载你朋友的WhenFS日历文件系统,以最有趣的方式共享文件
这就是蒙娜丽莎被上传到Google日历时的样子:
上图包含了整个图像的数据,被拆分成数百个小型日历事件描述。 整个文件系统 - 包括文件、目录、读写操作等 - 都是基于操纵这些Google日历事件而实现的。
WhenFS是一个"硬盘"的例子 - 一个我们不需要的硬盘。
(演示) 挂载朋友的文件系统
WhenFS可以在给定日历ID和文件系统恢复日历事件ID的情况下,挂载现有的WhenFS化的Google日历。
(演示) 将文件传输到Google日历
WhenFS可以在7秒多一点的时间内将一个3 KiB的文件传输到Google日历 - 这是一个高达400字节每秒的惊人上传速度:
它是如何运作的?
WhenFS操作从FUSE文件系统层开始,由fuser实现。该文件系统建立在一个写入通过的对象缓存之上,而对象缓存又建立在一个抽象数据存储接口之上,该接口具有可互换的日历API后端。
如果你够仔细地探索,你很可能会遇到bug、边缘情况和完全未实现的功能。没有计划去修复这些。
为什么要做这个?
我把这个项目作为学习Rust和FUSE文件系统的机会。我也认为这很有趣。
对代码感兴趣的访问者应该注意,这是一个无可救药的乱码代码库 - 它充满了hack、非惯用的代码和完全糟糕的设计决策。
但是,访问者也应该注意,这没什么不好的。学习一些新东西的最好方法就是自己动手尝试 - 创造一团乱麻是这个过程的重要部分。你现在看到的就是我的乱码。现在去创造你自己的乱码吧!
如何使用这个?
上面的图表花了太长时间来创建,所以我现在已经没有精力来写一个教程。如果你弄明白了如何使用,请告诉我。
更严肃地说:Google日历是一个非常好的服务。我强烈建议任何人都不要将此用于任何非教育目的。滥用免费服务是错误的 - 不要为恶。
贡献
欢迎各种贡献。 请注意,所有贡献都需要签署一份贡献许可协议("CLA"),要求所有贡献都附有一个让作者轻轻一笑但又不过于夸张的趣味meme。