-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用MCLF-CN提供的公用API服务 #3
Comments
还有公共资金的? |
thinking https://github.com/z0z0r4/mcim
|
姑且,这里需要一些接口定义,返回值,或者决定要照抄源 API 的内容吗? |
既然 GET 请求会被缓存,全部 POST 请求用同一个也没啥问题吧,现在的请求大头就三个 |
不止会带x-api-key,还可能带上启动器的UA等传给cf他们,方便他们统计 |
这件事最起码的是启动器dev的支持以及资金来源吧...完全没有提及呢 |
资金来源这个还在整理以及找老板中,暂时没新消息。主要先讨论这个提议有做下去的必要没 |
目前 Modrinth 在国内访问状态良好,感觉没必要代理,倒是 CurseForge 问题非常大,如果有的话自然是最好的…… |
哪些接口已经被启动器使用了呢?需要参考 在进行缓存的情况下,提供两个平台的全部信息工作量不小,是否应该提供聚合接口? 个人认为应该既然已经缓存了,就应该剔除多余信息,聚合接口仅留下以下需求所必须的信息 以下是我猜测的需求
只是混合两个平台的数据还好 不清楚是否会使用这些数据,但 Mod 依赖、Mod 分类依据 需要详细定义,得根据两个平台定义...很麻烦 两个平台都有自己的分类依据,聚合显得有点困难, |
你可以在 PCL 的仓库里搜 api.curseforge.com 和 api.modrinth.com |
目前BakaXL是把两个接口的内容进行搜索后,以两个站点的内容合并交叉显示的。 |
喔~ 这个好,有需要的话我可以做一个出来,爬虫我擅长啊 @bangbang93 |
This comment was marked as off-topic.
This comment was marked as off-topic.
这不提供 mod 下载吧... 我记得作者发钱按下载量算的,而且 bmclapi 这么高负载你还找它... |
还有七天开学,我是废物做不完了…这几天得出门,bad end 暂时搁置,大概是下个暑假才搞得完了 大佬们有兴趣的做吧,当然没人做带 缓存 的话我会继续找时间重构的
|
可能的话,请保持 API 与原站完全一致 |
这种不太好做到,毕竟某些参数不可能做到完全一致,如果和原站一样的话,那叫反向代理 |
能解释下那些参数不可能做到完全一致吗 |
姑且,全部一致在我这就是 model 写长点…留下必要的部分就行了,不少参数都是多余的或者不知道含义的…比如 |
抱歉,我用词不当。我希望我们的新 API 是原站的一个子集,即,API 路径不变、参数名称和类型不变(但可以少) |
支持国内有统一的minecraft resource index站点,但这个东西既需要钱也要大量技术,属实不好做的 |
标准征求:
|
建议直接定义 HTTP 状态码 600 Cache Not Found |
不要乱加定义,非304的响应都是算没有缓存 |
定义非标准的状态码在无法控制全部客户端的情况下可能不是一个好主意 此场景使用404状态码似乎没有什么问题 |
目前,HCML 与 PCL2 已经双双跑通,可以直接替换 url, https://github.com/z0z0r4/mcim 仓库见 https://github.com/z0z0r4/PCL2 和 https://github.com/z0z0r4/HMCL 如遇到 404 等情况,等待几秒后再尝试就能拉取到数据了(首次缓存
|
umm 如果这能只提供 API 中转,但不能提供文件下载中转的话……连不上 CF 的玩家只是能看到文件列表了,但点进去也没法下载,似乎就意义不大…… |
按照我的理解,使用 CurseForge 提供的 API 下载就绕过了官网的广告,这样 CurseForge 得到的收入就会减少,也就可以解释为什么是 刻意而为之 |
也就是说启动器下载一开始就无法为 Mod 作者提供报酬? |
是,这是 CF 那边干的,只要是通过 API 访问它都不计数,我们没有任何办法 |
那我可就没任何心理负担了…镜像了也没影响人家收入… |
@burningtnt @LTCatt 征求下启动器的意见:如果接入的话,能否够接受额外的 CDN 鉴权,参考 https://cloud.tencent.com/document/product/228/76110 |
没有意义。HMCL 全部开源,别人可以极其简单的伪造鉴权信息。 |
试试 GitHub 配置 Secret? |
???HMCL 的代码毫无混淆。你以为 CURSE_API_KEY 这种是私有的吗?只要你敢把 HMCL 里的 META-INF/MANIFEST.MF 打开,API Key 全在里面 |
伪造鉴权是预料之内的,但可以简单的避免部分小鬼,考虑到你游的低年龄 虽说不适合类比,如果 PCL2 的远古版本下载不开鉴权肯定会更多人刷量 |
你可以考虑加启动器 UA 过滤? |
UA 也能伪造。 |
我将来会加 UA 过滤 |
咋样都能伪造的...没准备用它避免伪造,防点小鬼 主要鉴权得启动器写...所以征求下开发的意见... |
如果只是想避免从 log 复制网址的小鬼,那加 UA 检测其实就够了…… |
复制网址下载的小鬼偶尔下一下应该不会造成过大负担吧,有刷量意图和能力的绕个UA也不在话下 |
ok,那就这么办吧 |
收回成见,请求流量还是能缓存到 50% 以上的... |
能不能联系一下 OpenBMCLAPI 的支持方看看能不能也支持下 OpenMCIM? |
我注意到 HMCL-dev/HMCL@main...mcmod-info-mirror:HMCL:main 这里你将 URL 中的 除此之外,目前如果资源没有缓存,是返回 404 还是 302 回原站? |
This comment has been minimized.
This comment has been minimized.
我发现我晚上有点搞混了 未缓存文件是301会源 404是OpenMcim主控给出的状态码orz |
|
该 pr 需要修改,失效了 如果 HMCL 有意愿我会提供相关支持 |
我还是很好奇你这个镜像的规则。我可以先把这类内容合并入 PR Collection |
关于接口,姑且有文档,请问你稍微看过 README 了吗,值得怀疑...?https://mod.mcimirror.top/docs 关于未缓存的情况,请参考 缓存策略 未缓存的 Mod 信息会根据请求的 API 类型进行处理,当前缓存率已经够高了 MCIM statistics
此处资源要分 API 信息还是文件,API 信息见上 如果指的是以下文件下载的接口,未被 MCIM 缓存的直接回源
|
检查项
您是什么类型的用户
第三方网站管理/负责人(MC相关的)
请简单的说一下您的想法
考虑到国内部分地区使用第三方资源站可能出现访问比较困难的问题,现公开征求是否提供统一的第三方API接口,例如CurseForge、Modrinth和其他公用API。
将由组织统一采购使用腾讯云EdgeOne,并提供中心服务器。
现阶段暂时考虑实现的接口有:CurseForge、Modrinth接口的代理访问,启动器管理平台,统一公告通知平台。
鉴权:
CurseForge和Modrinth都拥有各自的appid等鉴权信息,为防止遇到冲突亦或者第三方API拉闸,每个启动器请求时将使用自己的第三方网站鉴权id。
初步的设想是由本平台提供一个启动器注册平台,然后可以自行在平台上填写自己的第三方接口的鉴权信息,最后请求本平台调用第三方API时,只需要header头带上启动器在本平台的标识,最终请求时将自动带上该启动器设置的鉴权appid。
缓存:
接口将根据需求开启CDN级缓存,同时也将开启离线缓存功能,将会在中心服务器维护/崩溃时,依然会读取之前缓存的API内容,降低中心服务挂掉带来的影响。
收费:
由于EdgeOne是根据请求数和CDN流量来进行收费,大部分成本将使用MCLF-CN的公共资金提供,但如果有特定启动器的用量确实过于高的话,将会以腾讯云公开的最低活动价的8折进行收费。
由于是纯API访问,实际上流量用得并不多,用的多的可能是请求数,参考价格如下:
如届时联系到云厂商提供赞助的话,我也会第一时间通知各位。
它能解决什么样的问题/带来什么样的帮助
能够利用国内网络加速用户访问部分非下载类型的海外服务,改善用户体验。
同时提供各大启动器的统一通知服务,所有启动器用户都能收到由MCLF-CN发布的通知。
期望的结果
统一使用第三方接口,减轻开发者的负担。
是否有对这个方案的相关链接?
No response
附注
No response
The text was updated successfully, but these errors were encountered: