之前 zlibrary 的域名被取缔也曾经是一度的热门,但是 zlibrary 并没有就此消失。这篇文章就介绍几个继续使用 zlibraray 的小技巧。
zlibrary 的很多域名都被 sized 了,包括
但是 zlibrary 似乎搜集了很多不同顶级域名,虽然一直在被取缔,但是还一直有可访问的网址。我之前的文章 其实一直再更新。这里就放两个,如果还有更新我一般会更新到之前的文章里面。
在使用自己的账号登录 zlibrary 之后,在我的页面中,可以找到绑定 Telegram Bot 的地方,
登录 zlibrary 之后,点击右上角
找到这个 Telegram Bot ,根据这个提示,在 Telegram 中创建 Bot,然后获取 Bot 的 API 。将这个 API 粘贴到网页上。
或者直接编辑个人页面,找到页面下方的 Personal Telegram bot
在绑定了 zlib Telegram bot 之后,只要发送书名,就可以返回搜索的书,然后可以将书转发到我写的 KindlePush bot 中,发到 Kindle
初次使用 KindlePush Bot 需要设置一下邮箱和帐户名密码。
使用账号登录 zlibrary 登录之后可以获得两个私人的访问地址,可以保存到收藏夹然后就可以通过这个私人地址去访问了。
也可以使用如下的脚本
会在界面中添加一个按钮用来在 [[IPFS]] 网络中下载。
通过 IPFS 下载可以不占用 Zlibrary 的配额。
很早之前整理有关日本的书籍的时候就看到过,但是最近拿起来这本书还是因为在公司的书架上看到了,然后就借回家读了读。
蒋丰,对其人不太熟悉,看了一下书封面上的介绍,是 《日本新华侨报》的总编,在日本已经呆了 30 多年了,所以也就有了观察描写日本的资格。
之前在总结日本文化相关的书籍的时候,我自己做了一个分类,比如说有美国人旁观者身份去写的《菊与刀》,英国人写的《剑桥日本史》,有日本人自己写的《战后日本经济史》,还有中国人的观察笔记《静观日本》,对于日本这样一个主题能找到非常多的视角。而这一本《日本的细节》就是从一个现代中国人的视角重新去看日本生活中的细节。
作者通过如下的几个方面,对日本生活的方方面面细节进行了描绘。
这本书抛开了所有宏伟的历史叙事,而仅仅是将当下,现实的日本生活中的细节,一一展现在读者面前。
这本书给我的最大收获就是让我看到了,日本社会的变化,正如书名《日本的细节》作者截取的当下日本生活的截面,但是放到历史的纵向,让我看到了为什么会变成这样。
从这些变化上面也能看到,日本从来就不是那个遵守规则,文明开化的社会,但是能看到的是每一次社会出现问题,就立马会进行调整,纠错。这两天在 Twitter 上也看到了有人来日本旅游,高赞生活中遇见的一切,温热的马桶座垫,拥有不会缺纸的公共卫生间,干净的街道等等。但是我想说的是,每个国家都有每个国家的优点,每个国家也有每个国家的缺点,日本不是一个完美的国家,这个世界上也不存在一个完美的国家,但是这个世界上存在会进步(纠错)的国家,存在保守固执的国家。
日本的交通问题,食品安全问题,医药分离问题都是非常大的问题,甚至森永奶粉受害者们成立的自治受害者协会花了 10 年的时间才让森永低头认罪。这一下子就让我想到了 [[托克维尔]] 在 [[论美国的民主]] 中他观察到美国的[[公民自治]],观察到的自治团体在社会中产生的作用。而日本显然是有这样的自治团体出现的土壤的,人们会为了同一个信念而构成小团体,进而去纠正这个社会的错误。
我过来日本这边也过去了半年,本来在过来一个月的时候就想写一篇总结,但因为拖延症,所以一拖再拖。但是读完这一本书又让我想起了,当时我想写没有写出的「细节」。
对日本这个社会,国家比较感兴趣的人。
如何快速分享 Obsidian 中的笔记是从我开始使用 Obsidian 之后一直在思考的问题,在之前,因为我所有的笔记都是通过 Markdown 来存放在本地的,如果我想要分享一个笔记,一般就是将笔记移动到 Blog/_post
目录下,因为我使用一个 Git 仓库来管理我所有的笔记(Vault)然后使用 git submodule 的方式来将我的 Jekyll 博客,Hexo 博客 放到我的统一的笔记库里面。所以当我想要发布一篇笔记的时候,就是将笔记移动到对应的博客的目录,然后在使用 git commit 提交,push 来发布,之后的过程都是通过 CI 自动完成的。
虽然这样的方式我已经使用了很多年了,也没有什么大的问题,唯一的问题就是因为发布博客对 Markdown 的标题有一些限制,所以发布之前都得进行重命名。并且我没有办法做到一键发布,大部分的情况下我都必需打开终端,然后进行提交。直到我发现了一款叫做 [[obsidian-wordpress]] 的插件。
这个插件完美的解决了我想要快速分享一篇笔记,然后还不需要我做任何调整,当完成初次的配置之后,基本上只需要点击一下就可以完成发布。
这个插件使用 WordPress 的接口(XML-RPC 或 REST)来发布文章。
obsidian-wordpress 是一款 Obsidian 下的插件,可以一键将笔记发布到 WordPress 站点中。该插件使用 XML-RPC 或 REST 接口进行发布。
XML-RPC 是默认启用的,但有些站点可能由于安全问题而禁用它。 虽然有些共享主机可能默认禁用 XML-RPC,但是您无法启用它。 因此,如果禁用 XML-RPC,这个插件将不起作用。
在 WodrPress 4.7 之后,REST API 会在默认情况下启用。 一些 REST API 需要额外的操作来保护可写 API。 历史上 REST 接口是通过安装插件实现的。 在 WordPress 5.6 版本之后,引入了应用程序密码来完成类似的工作。 因此在 WordPress 5.6 之后 ,应用程序密码是首选的。
在插件的设置中,找到 Profile,这里可以配置站点的信息,包括地址,API 类型,用户名,密码等。
需要注意的是这里的密码,在最新版的 WordPress 中请使用应用程序密码,在用户管理下面生成。
当完成以上的设置之后,在任意的笔记中,都可以在侧边栏中找到 WordPress 的按钮,然后点击,选择分类,一键完成发布。最近我有在写我的 日本生活 ,其中所有的内容都是我在 Obsidian 中完成编写,然后发布的。我创建了一个单独的文件夹用来存放所有发布到该网站的内容,并且这些内容也可以很好的和我的其他笔记进行融合,并且在我修改了文章的内容之后,也可以快速进行一键发布。
在以前我使用 WordPress 的时候,非常不方面的一点就是对其中文章内容的修改非常不方便,我不喜欢在线的编辑器,而如今 Obsidian 就成为了我的 WordPress 的本地编辑器。
文章中的图片我是我之前搭建的 [[Chevereto]] 图床,配合 macOS 下的 uPic,我设置了快捷键 Ctrl + Shift + U,就可以一键上传粘贴板中的内容。然后直接在 Obsidian 中使用即可。
今天打开华泰证券(涨乐全球通)才发现现在新用户开户还有「一世全免」的活动,我过去一年开户的时候,涨乐只提供了一年的 V2 会员,平台费,佣金,手续费,IPO 费用,会员费全面。这在所有的券商中都是佼佼者,并且这个免佣活动还是终身免佣的,涨乐的这个免佣相比于富途、长桥来说,是真的免佣,每次交易都不需要考虑交易费用,而其他平台的免佣知识免去佣金,平台费,手续费还是有的(说的就是长桥)。
另外如果关注投资的话,也可以关注我的 投资相关的记录。
1.活动时间
涨乐「一世全免」迎新奖励推广活动(「本活动」)之活动期由 2023 年 8 月 1 日至 2023 年 8 月 31 日,包含首尾两天(「活动期」)。
2.活动对象
本活动只适用在活动期内于华泰金融控股(香港)有限公司(「本公司或华泰金控」)涨乐全球通 APP(「APP」)成功开立账户的全新零售客户(「新客户」),不适用于机构客户、财富管理客户和销户重开用户。
3.迎新奖励
客户在新开户 30 天内净入金等于或高于 20,000 港元(或等价值其它货币),即可激活及领取以下入金奖励:
涨乐「一世全免」优惠(「一世全免」) 券 1 张, 即包括港美 A 股的豁免佣金、平台费及港股 IPO 手续费
30 天港股 LV2 行情卡券 1 张
200 港元基金满返券 1 张
30 天 5%加息券
4.奖励领取及使用细则
新客户在活动期间完成新开户、入金等不同任务后,即可启动相应奖励。新客户需于成功开户 30 天内至涨乐 APP 内活动中心内的活动页面点击领取新人礼包,及必须在有效期内兑换相应卡券,逾期未兑换奖励将视为失效及不会补发迎新奖励。
(1)「一世全免」优惠将于新客户完成对应入金任务完成后 14 个工作日内以「一世全免」卡券形式发放至「我的-我的卡券」。客户点击该卡券后,该优惠立即生效。每位合资格客户只能获得「一世全免」卡券 1 张。
(2)「一世全免」将于新客户完成对应入金任务完成后 14 个工作日内发放,卡券发放后 60 天内有效,客户需在有效期前于「我的-我的卡券」点击兑换。该卡券点击兑换后,将一次性生效连续 60 年,不可与其他会员资格同时享有,亦不可分拆时段使用, 卡券逾期将视为失效。若「一世全免」生效期间客户购买 V1/V2/M1/M2 会员,则视为自愿放弃「一世全免」优惠。
(3)30 天港股 LV2 行情卡券将于新客户完成对应入金任务完成后 14 个工作日内发放,客户需在 60 天内于「我的-我的卡券」点击兑换。点击「兑换」按钮后即可立即激活港股 LV2 行情卡(全球版) ,行情卡权限天数为 30 天。
(4) 基金满返券将于新客户完成对应入金任务完成后 14 个工作日内发放,客户需在 60 天内于「我的-我的卡券」点击兑换。基金满返券有效期为兑换日起的 60 天;200 港元券在购买港元非货币型公募基金(不含乐盈宝)单笔满 20,000 港元可返 200 港元(先买后返,基金份额确认后返现自动到账)。基金满返券适用之基金产品类型由华泰金控指定。基金满返券适用于由华泰金控指定的基金产品类型。
(5)30 天 5%加息券将于新客户完成开户后 14 个工作日内发放,用户需在 60 天内于「我的-我的卡券」点击兑换。30 天 5%加息券有效期为兑换日起的 30 天。加息券只适用于债券型、股债混合型公募基金。港币、美元均适用。
(6)本活动内货币的换算率以涨乐全球通维护的汇率信息为准, 及入金金额及日期以涨乐全球通系统记录到的实际到账为准。
(7)迎新奖励如有调整,华泰金控将有最终决定权,并以涨乐全球通活动页面最新规则为准。客户入金金额及日期以实际到账为准。
5.特别说明
(1)「一世全免」是指豁免客户发生交易时产生的港股、美股、A 股通之相关佣金、平台费及港股 IPO 手续费,不包含交收费及印花税等交易成本,费用详情请参考涨乐全球通官方网站(https://zlglobal.htsc.com.hk)。
(2)「一世」是指客户点击使用「一世全免」卡券后,客户可享有优惠的期限是一次性生效连续 60 年,直至户口被取消。如 60 年期限到期后,客户仍未销户,则会再补发 60 年期效的「一世全免」卡券。以上活动期限、费用标准及奖励变更,本公司拥有最终解释权与决定权。
(3) 若该客户当前为 V1/V2/V3/M1/M2 会员,点击使用「一世全免」卡券后,当时会员资格立刻失效,V3 年会员实时生效。若当时等级会员剩余有效期符合积分返还条件,则系统将返还对应积分。M1/M2 会员可等待会员到期后,才兑换「一世全免」卡券。用户亦可使用返还的积分因应个人需要兑换 M1/M2 会员。
(4)30 天 5%加息券需在订单金额符合使用范围内生效,限内年化 5%加息,最高可享 30 天,港币和美元使用门槛及上限如下:
基金币种 | 使用门槛 | 使用上限 | 最高加息金额 |
---|---|---|---|
港币 | 1000 | 100000 | 410.96 |
美元 | 128 | 12821 | 52.69 |
(5)本次活动所涉指定开户、入金任务的完成时间点,以华泰金控后台系统时间为准,活动解释权在法律允许范围内归华泰金控解释。
(6)若因取消订单或者其他取消订单行为,导致基金满返券过期或失效,不予返还或补偿,同时相应奖励不予发放。
(7)活动中若出现违反法律法规、平台规则及本次活动规则的行为或以不正当手段参与(包括但不限于使用非实名制手机号码、实施网络攻击、作弊领取等),华泰金控有权要求用户返还已收取的奖励,并追究法律责任。
(8)活动参与者应自行负担因参与活动领取奖品而产生的税费(如有)。
(9)此活动需年满 18 周岁及以上的用户参与。
(10)如有疑问,请联系在线客服,或致电推广热线: (852) 2121 4288, 星期一至五 09:00-18:00。
(11)因应不同产品的市场需要,每项产品都有不同的特性、风险及条款,投资者在进行各类产品买卖前(包括但不限于衍生工具产品)必须已经细阅及明白有关各类产品的条款之内容和细则,并同意及有能力承担一切交易有关产品所带来之风险及责任。一般而言,衍生工具产品的风险较高,并不适合所有投资者。如投资者对相关产品(包括但不限于衍生工具产品)有任何疑问,敬请立刻咨询独立专业意见。
(13)市场有风险,投资需谨慎。
(14)本活动不构成任何证券、金融产品或工具要约、招揽、建议、意见或任何保证;本活动由本公司提供,内容未经香港证券及期货事务监察委员会审阅。
(15) 上述活动规则受香港特别行政区法律所管辖,并按照香港特别行政区法律诠释, 香港特别行政区法院对任何因活动条款与细则引致或与其相关的纠纷具有司法管辖权。
(16) 如有任何争议,本公司或华泰金控保留最终决定权。
6.免责申明
优惠受条款及细则约束。本推广计划条款及细则内容及其数据并不构成任何华泰金融控股(香港)有限公司为售卖任何证券、产品或投资作出招揽、提出要约、意见或推荐,或对任何证劵、产品或投资的收益或是否合适提供法律、税务、会计、投资意见或服务。阁下应审慎评估及评定任何投资的效益及风险,如有疑问,阁下应就此咨询专业顾问。准投资者应进行所须或适当的独立调查,包括评估所涉及的投资风险。本数据仅为香港特别行政区内的使用者而设,所提供的信息不得于香港特别行政区以外分发,并不应被视为在任何的国家、地区或司法管辖区中(为免生疑问,包括美国) ,对投资、产品或服务的邀请、要约、建议或招揽。非香港投资者有责任遵守其相关司法管辖区的所有适用的法律及法规。另外,在法律允许范围内,华泰金融控股(香港)有限公司保留更改条款或细则或更改或终止迎新礼品的权利。华泰金融控股(香港)有限公司有权随时终止此礼品,不需预先另行通知。如有任何争议,主办方华泰金融控股(香港)有限公司保留最终解释权和决定权。
Koofr 是一家欧洲网络云盘运营商,成立于 2013 年。直接也介绍过一款日本服务商提供的,支持 WebDAV 的网盘 TeraCLOUD 后来改名成了 [[InfiniCLOUD]],提供超大的初始容量(38 GB)。
Koofr 网盘提供了可靠的云存储和文件同步服务,同时也支持 WebDAV 协议。WebDAV(Web Distributed Authoring and Versioning)是一种用于在互联网上进行文档管理和共享的扩展标准。它允许用户通过 HTTP 协议来编辑和管理远程服务器上的文件。这里为什么要强调 WebDAV 呢,是因为支持这个协议之后,有很多同步工具都可以使用,而不需要依赖官方提供的开户端。比如同步 Obsidian 笔记,比如直接在 Finder 中挂载网盘等等。
Koofr 免费 10 GB 的初始空间,每邀请 1 位用户会多增加 0.5GB 空间,最多增加 8GB,如果感兴趣可以使用我的邀请 注册。本来还想放一个大文件可以测试一下速度,但是发现免费的用户生成的链接有限期只有 14 天。
官方最低终身套餐 $29.99/100GB,史低有过 $18/100GB
easy-upload 是一个支持在不同的 PT 站点之间转载,自动填写发布信息的用户脚本 Userscript,非常方便使用 PT 的朋友使用。自动填写上传页表单,支持内外站互转,支持 PT 站间快速检索。
如果不清楚 PT 是什么,可以注册PT GTK 来了解使用。我也会在站内不定期的发送其它站点的邀请。也欢迎其他爱好者加入站点之后一起讨论。
首先要修改 Tampermonkey 扩展,允许访问文件网址。
在浏览器的 [[Tampermonkey]] 扩展中创建一个新的空白用户脚本,然后将以下内容复制进去,再将 @require
下的文件路径修改为自己本地工程中 .cache/easy-upload.user.js
所在的路径。
// ==UserScript==
// @name debug
// @namespace https://github.com/techmovie/easy-upload
// @version ${version}
// @description ${description}
// @author ${author}
// @require https://cdn.bootcss.com/jquery/1.7.1/jquery.min.js
// @match https://passthepopcorn.me/torrents.php?id=*
// @match http://*/details.php?id=*
// @match https://*/details.php?id=*
// @match https://totheglory.im/t/*
// @match https://beyond-hd.me/torrents/*
// @match https://lemonhd.org/upload_*
// @match https://lemonhd.org/details*
// @match https://blutopia.xyz/torrents/*
// @match https://blutopia.xyz/torrents?*
// @match https://blutopia.xyz/upload/*
// @match https://pt.hdpost.top/torrents?*
// @match https://pt.hdpost.top/torrents/*
// @match https://asiancinema.me/torrents/*
// @match https://asiancinema.me/torrents?*
// @match https://*/upload*
// @match http://*/upload*
// @match http://www.hd.ai/Torrents.upload
// @match http://www.hd.ai/Torrents.index?*
// @match https://broadcity.in/browse.php?imdb=*
// @match https://ptpimg.me
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_openInTab
// @grant GM_xmlhttpRequest
// @grant GM_setClipboard
// @require file:///Users/einverne/Git/easy-upload/.cache/easy-upload.user.js
// ==/UserScript==
(function() {
'use strict';
})();
然后到项目的跟目录下,执行 yarn install 安装依赖包,然后运行 yarn dev
启动工程,有文件改动,.cache 目录下的脚本会自动更新,刷新浏览器即可。
当调试完成,可以执行 yarn build
在 dist 目录中生成最后发布的脚本。同理也可以直接在上面的路径中使用 dist 下的文件,但此时每一次都需要 yarn build
来生成最新的文件。
当完成上述的配置之后,在浏览器中打开 PT 站点(NexusPHP),就会在种子对应的详情页面展示如下的画面,点击其中的 gtk,就可以将其他站点的信息一键补充到 PT GTK 中。
更详细的编译好的版本,可以到这里 下载使用。
开发流程执行如下的命令
yarn install
yarn upgrade
yarn build
uBlock Origin 是一个高效率的网页元素拦截器,也可以作为广告拦截器存在。uBlock 是一个支持多浏览器的扩展程序,包括 Chrome、Firefox、Edge 和 Safari。
uBlock Origin 的主要功能是阻止网页上的广告,包括横幅广告、弹出广告和视频广告。它还可以阻止恶意软件、跟踪器和其他不受欢迎的内容。
与其他类似的广告拦截器不同,uBlock Origin 是一个开源项目,这意味着任何人都可以查看和审查其代码。这使得用户可以信任该扩展程序并确保其安全性。
uBlock Origin 还提供了一些高级功能,如过滤规则和自定义设置。用户可以根据自己的偏好来定制广告拦截器的行为,并选择是否启用某些过滤规则。
默认的情况下,uBlock Origin 内置了如下的屏蔽规则
需要注意的是如果在 Chrome WebStore 中搜索 ublock,那么会出来两个看起来非常相似的 uBlock 插件,请安装 uBlock Origin,并检查起插件介绍,是否指向 GitHub 开源仓库。
uBlock Origin 是一款开源的网页内容屏蔽工具,并不仅仅是一个 Ad Blockers,虽然用户可以导入屏蔽规则来屏蔽广告,但 uBlock 可以实现更多。
今天和朋友电话聊到英语口语,他说自己很长一段时间不说英语,前两天和一个印度人交流的时候虽然能听懂,但是却说不出来的那种痛苦的感觉。我一想到我现在正在学习日语 也有遇到相类似的问题,并且我也需要不时的去联系一下英语口语,于是就搜索了一下,因为之前就知道有一些网站提供真人的 1 对 1 口语聊天服务。但是现在 AI 这么流行,也诞生了和 AI 聊天的工具,之前尝试过一个叫做 Speak 的应用,但今天一搜索发现了另外一个在线和 AI 聊天的网站 —- Trancy。
在 OpenAI 没有推出 ChatGPT 之前,其实每个人的手机都有两个我非常推荐的聊天助手,OK Google 和 Hey Siri。过去我常常把这个语音助手的语言调整成我想学习的语言,比如英语,韩语。这样我就可以让语音识别来纠正我的发音,因为如果我发音不标准,那么识别出来的文字一般就是错误的,通过调整我自己的发音让语音识别 100% 识别出来,基本上在发音上就不存在什么大问题了。然后也可以通过简单的给这两个语音助手发出命令来熟悉这个语言,比如让语音助手设定闹钟,编写备忘录等等。
而本文的主角 Trancy,用官方的说法就是一个 AI 的口语私教,一个永远不会累,一个永远可以和你说话的 AI 老师。其实 Trancy 网站中提供的最重要的功能就是提供一个场景,然后用户可以在这个场景之中和 AI 一起完成对话。
Trancy 提供了两种对话的模式。
但选择完成对话的模式之后,就进入了聊天的界面。和 ChatGPT 不一样的是,在这里,你只能通过语音来和 AI 进行交互。
比如在这个在「免税店购物」 的场景中,AI 就作为你的导购,在上面的跟随模式中,你可以跟读,也可以选择自由对话模式,自己用口语和 AI 进行对话。只需要按空格开始录制,空格结束录制即可。
如果你不满足于内置的预设场景,那也可以通过自定义场景 来联系,在官方文档中可以看到你需要输入几个关键字,然后设定一下对话的次数,就可以很快让 AI 生成一个对话的场景用来自由联系。
出来语音对话之外,网站还提供了一个 AI 教师的功能,这个功能就是文字版的 AI 助手。
可以让 AI
等等。
Trancy 也提供了 Chrome 插件,可以让用户在看 YouTube/Netflix 流媒体的时候,进行沉浸式的学习。然后可以对视频的内容进行学习,比如说可以收藏句子,陌生的单词等等。
官方也推荐了一些可以语言学习的 YouTube Channel。
如果你看到这里觉得 Trancy 不错,可以点击我的邀请链接,你可以额外获得 10 天的高级会员。
不久之前看到 Obsidian 推出了一个官方的插件可以将 Evernote 的笔记导入到 Obsidian 中,于是就把「将 Evernote 笔记导入到 Obisidian」列为了一项我的待办事项,虽然已经很多年没有用 Evernote 了,但里面还有一些摘录,我一直认为笔记只有能被检索到才有价值,而 Obsidian 的检索速度也非常快,虽然没有 OCR,但纯文本的检索如果能被反复找到,那么可能那些笔记还有价值。
如果使用最新版本的 Evernote,那么登录的时候 Evernote 就会弹窗让你付费,或者试用 7 天,如果点击取消只能退出账户。所以这个时候可以下载一个老版本的,比如 7.10 版本的 Evernote。你可以从 MacUpldate 这个网站上下载到老版本的 Evernote。
登录 Evernote 之后等待同步下载笔记,
选中 All Notes,然后 Cmd + A 选中所有的笔记。然后右击,导出笔记,然后勾选「Include tags for each node」。接下来就是漫长的导出时间。
打开 Obsidian,然后在插件安装列表中搜索「Importer」,找到 Obsidian 官方出的插件,下载。之后在侧边栏会多出一个按钮,通过这个按钮调出导入的对话框。
在该对话框中设置刚刚导出的 .enex
文件,然后导出到的文件夹。点击 Import,之后就根据笔记的数量会有一段很长的时间等待。
导入完成之后就能在 Obsidian 的对应的文件夹中找到从 Evernote 中到处的笔记了。
今天在了解一个根据英语搜索日语的网站 —- hiki 的时候,发现这个网站是使用一个叫做 [[Preact]] 的非常轻量的框架写的,然后我就沿着 Preact 的线索去查了一下那些网站是用 Preact 实现的,然后就发现了本文的主人公 —- [[blaze]]。
blaze 是一个基于 P2P 技术的文件共享 Web 应用程序。它允许用户通过直接连接和共享文件,而无需通过云存储服务或中央服务器。使用 blaze,用户可以轻松地共享大型文件、照片、视频等,并与其他用户进行实时的 P2P 传输。该应用程序提供了一个简单直观的界面,使用户能够快速上传和下载文件。blaze 利用 WebRTC 技术实现点对点连接,并使用 WebTorrent 协议进行文件传输。这种去中心化的方法不仅提高了速度和效率,同时也增强了隐私和安全性。
我简单的试用了一下 blaze ,发现真的太神奇了,它是一个文件分享的网站,但是不需要任何的注册,验证,而只需要设备在同一个局域网中就可以相互分享文件。于是为了测试我在 macOS 上打开了 blaze,然后起一个昵称,之后会得到一个链接,然后我在 Android 平板上打开同样的链接,网站就自动找到了局域网中的设备,我测试直接从 macOS 上发送文件,在 Android 上立即就收到了发送的文件。
我测试发送一个大文件,虽然没有跑满全部的局域网带宽,但因为 WiFi 传输的原因,也能维持在 3+M/s 的速度,一个 600+M 的文件,传输的时间也在接受的范围内。
好奇这个网站是如何实现的,但好在这个网站是开源的,并且作者在 README 中也提到了网站使用的技术 —- [[WebTorrent]] 和 [[WebSocket]],文件分享通过 WebTorrent 建立点对点的连接(内部使用 WebRTC)这意味着文件的传输是不需要经过中间服务器的,直接在发送者传输到接受者。需要注意的是这个地方 WebTorrent 其中有一个 Torrent,如果看过我之前的 BitTorrent 协议 一文的读者应该会对这个协议比较了解,WebTorrent 是一个纯 Web 的实现,但是和 BitTorrent 协议一样 tracker 服务器不存储任何文件,只存储 metadata 和必要的文件描述,节点信息等。