ecust-CourseShare icon indicating copy to clipboard operation
ecust-CourseShare copied to clipboard

仓库体积精简计划

Open wu2305 opened this issue 1 year ago • 43 comments

最近由于提交的资源量快速增长,仓库的大小已经超过了10GB。

对于普通的贡献者来说,--depth=1是一个很好的解决方法,但作为20级的贡献者之一的我和Liz已经感到其中内容的混乱性

其中尤其令人头大的

  1. 需要专有软件才能打开的xmind思维导图
  2. 部分课程的电子书或参考教材以pdf或者是zip/rar形式
  3. 甚至有人还上传了软件的安装包(-_-
  4. 文件夹内部的命名混乱,不直观

是时候开始做一些改变了。 对于需要分享的大文件存储,我倾向于用超星的资源库,或者是我校的上传接口上传内容,可以利用超星的永久直链功能大幅度加速下载

wu2305 avatar Jan 14 '23 04:01 wu2305

走学校上传接口不太保险吧。 走onedrive,aliyun外链如何?

| | @.*** | | @.*** |

---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2023年01月14日 12:22 | | 收件人 | @.> | | 抄送至 | @.***> | | 主题 | [tianyilt/ecust-CourseShare] 仓库体积精简计划 (Issue #99) |

最近由于提交的资源量快速增长,仓库的大小已经超过了10GB。

对于普通的贡献者来说,--depth=1是一个很好的解决方法,但作为20级的贡献者之一的我和Liz已经感到其中内容的混乱性

其中尤其令人头大的

需要专有软件才能打开的xmind思维导图 部分课程的电子书或参考教材以pdf或者是zip/rar形式 甚至有人还上传了软件的安装包(-_- 文件夹内部的命名混乱,不直观

是时候开始做一些改变了。 对于需要分享的大文件存储,我倾向于用超星的资源库,或者是我校的上传接口上传内容,可以利用超星的永久直链功能大幅度加速下载

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

ericzhang-debug avatar Jan 14 '23 04:01 ericzhang-debug

外链的话可能下载速度很不理想,目前的话我们有在使用腾讯云的COS以及CDN作为分流节点,但是每月都要续费,需要每一年大创的同学来承担相关的服务器和资源费用。

目前我校的接口属于无校验上传,并且大多数学校都有同样的一个接口可以用来分流,防止单机构流量过大导致被超星限制

wu2305 avatar Jan 14 '23 11:01 wu2305

很棒的repo!请问能不能解释下超星资源库和我校接口都是什么?我看到这个问题,想到的是把文件都放到aws s3这种blob storage上,或者onedrive之类的网盘上

a-w-1806 avatar Jan 30 '23 22:01 a-w-1806

我之前也考虑将仓库更换阵地,仔细一想发现了一些问题,我也在这里列举一下:

  1. 更换到网盘
    • 产生的问题
      1. 国内网盘虽然下载速度很快,但是审查强度较高,很多文件会被禁止分享甚至直接列为违规文件
      2. 国外的网盘不会删除该仓库中的文件,但它们大多被中国的国家防火墙阻断或干扰,对于大多数同学来说会很难用,违背了我们建立项目的初衷。
      3. 自建网盘就需要考虑到存储成本以及网络成本,前者其实开销并不大,而后者反而是目前主要的一个开销来源,国内对象存储的出流量相当昂贵,必须配合CDN使用,这样开销就迅速增加了。
  2. 使用对象存储对于维护者来说就是一笔固定的开销,我个人有信心承担,但是当我离开学校毕业之后就很难有这个动力继续承担。能否维持下去就要看后面的学弟学妹们了。
  3. 使用国内的Git托管平台:容量根本不够,并且也很难公开给所有人提交修改下载。

超星是一个由北京大学牵头做的一个集团公司,主要在教育数字化方向运营。大多数中国高校的校内在线教学平台就是直接使用超星的SaaS或者PaaS产品。超星在存储这些教学活动中产生的文件时,会将一个文件与特殊的、唯一的ID绑定,似乎是某种私有hash算法。我在日常使用中发现了一些超星的无校验上传和无校验下载接口,适用于一定体积内的文件。

并且上传到超星后这些文件几乎不会被删除也没有审查机制对它们进行校验。这个平台也就成为了一个非常优秀的数据分流点和持久备份点。

我校,即华东理工大学使用的也是这个平台,并且没有修复这个接口。ericzhang担心上门查水表等各类事件的出现,希望我能够多提供一些接口防止被机构管理员察觉

wu2305 avatar Jan 31 '23 17:01 wu2305

我之前也考虑将仓库更换阵地,仔细一想发现了一些问题,我也在这里列举一下:

  1. 更换到网盘

    • 产生的问题

      1. 国内网盘虽然下载速度很快,但是审查强度较高,很多文件会被禁止分享甚至直接列为违规文件
      2. 国外的网盘不会删除该仓库中的文件,但它们大多被中国的国家防火墙阻断或干扰,对于大多数同学来说会很难用,违背了我们建立项目的初衷。
      3. 自建网盘就需要考虑到存储成本以及网络成本,前者其实开销并不大,而后者反而是目前主要的一个开销来源,国内对象存储的出流量相当昂贵,必须配合CDN使用,这样开销就迅速增加了。
  2. 使用对象存储对于维护者来说就是一笔固定的开销,我个人有信心承担,但是当我离开学校毕业之后就很难有这个动力继续承担。能否维持下去就要看后面的学弟学妹们了。

  3. 使用国内的Git托管平台:容量根本不够,并且也很难公开给所有人提交修改下载。

超星是一个由北京大学牵头做的一个集团公司,主要在教育数字化方向运营。大多数中国高校的校内在线教学平台就是直接使用超星的SaaS或者PaaS产品。超星在存储这些教学活动中产生的文件时,会将一个文件与特殊的、唯一的ID绑定,似乎是某种私有hash算法。我在日常使用中发现了一些超星的无校验上传和无校验下载接口,适用于一定体积内的文件。

并且上传到超星后这些文件几乎不会被删除也没有审查机制对它们进行校验。这个平台也就成为了一个非常优秀的数据分流点和持久备份点。

我校,即华东理工大学使用的也是这个平台,并且没有修复这个接口。ericzhang担心上门查水表等各类事件的出现,希望我能够多提供一些接口防止被机构管理员察觉

我昨天看中科大的repo似乎体积小的多,他们是怎么做的?

a-w-1806 avatar Jan 31 '23 17:01 a-w-1806

我记得Dropbox和Google Drive在国内不能用,但OneDrive好像可以?OneDrive生成分享链接以后应该可以直接在浏览器里打开并且下载。但OneDrive国内是不是很慢?

a-w-1806 avatar Jan 31 '23 17:01 a-w-1806

开销的话,你们考虑用任何形式去募集sponsorship吗

a-w-1806 avatar Jan 31 '23 18:01 a-w-1806

Onedrive的访问质量是取决于用户使用的网络的,华理接入的线路目前为联通的高优先级宽带以及电信的CN2政企专线,下载Onedrive的资料确实不成问题,但是您可能忽视了一点:onedrive的个人版地址已经在大陆区域被屏蔽了,我们虽然有A1P全局在手,但是是非法获取,稳定性存疑。

您上一个comment中提到了USTC的仓库,是指这个吗https://github.com/USTC-Resource/USTC-Course

如果是的话,可能是因为他们主要收集的是信息学院的课程代码以及课程的考试资料,并没有涉及到课件,收集的课程数量也比我们少得多。

wu2305 avatar Jan 31 '23 18:01 wu2305

开销的话,你们考虑用任何形式去募集sponsorship吗

这一点目前是靠嫖同学用不掉的大创经费维持的,数据量并不算很大,年费用也不算高昂。我更担心的是之后无人接手的可能。

wu2305 avatar Jan 31 '23 18:01 wu2305

onedrive的个人版地址已经在大陆区域被屏蔽了: 关于这一点我的确不知

USTC的仓库:是的

a-w-1806 avatar Jan 31 '23 18:01 a-w-1806

开销的话,你们考虑用任何形式去募集sponsorship吗

这一点目前是靠嫖同学用不掉的大创经费维持的,数据量并不算很大,年费用也不算高昂。我更担心的是之后无人接手的可能。

后续接手问题那就不只是费用问题了,还有需要那个人花出时间去运营。现在是怎么找人接手的?

a-w-1806 avatar Jan 31 '23 18:01 a-w-1806

目前是依靠校内的CIC计算机交流协会中抓人来保障最低限度的维护以及更新,完全就是用爱发电。

令人欣慰的是,许多学院的同学们都已经了解到这个仓库,也有意愿联系我们对其中的内容做出更新或者补充,这两年时间我也见证这个项目从4GB左右一路上涨到现在的体积,成为了一个亟待减肥的庞然大物。

wu2305 avatar Jan 31 '23 18:01 wu2305

运营这样子一个课程资料共享仓库需要的并不只有一个人,我和Liz曾经期望能够用社团作为基础来形成一个不断有新鲜血液加入的团队,进而确保每年都有人能够接手。

这个想法实现起来确实很难,不过我们也感受到了众人中一点一点的回应。前进的步伐缓慢,但是坚定

wu2305 avatar Jan 31 '23 18:01 wu2305

“抓人”可还行哈哈 这个repo很棒 我也希望能够接着存在下去 我的two cents是如果能把这个repo的运营给人带来的负担减小的很小 比如很多事情能自动化 或者有简洁易懂的流程可以参考 那抓人继续传下去会容易一些

a-w-1806 avatar Jan 31 '23 18:01 a-w-1806

我们也在试图做到这两点,流程的话目前已经较为简单了,基本的pull push等git操作都是CS的学生们该学习的内容,不会有太大的难度。

前者的话,我在想能不能用actions去自动同步,但这个又回到了前面存储空间的问题。

在可预见的半年内,自动化维护工具很难出现……

wu2305 avatar Jan 31 '23 18:01 wu2305

“抓人”可还行哈哈 这个repo很棒 我也希望能够接着存在下去 我的two cents是如果能把这个repo的运营给人带来的负担减小的很小 比如很多事情能自动化 或者有简洁易懂的流程可以参考 那抓人继续传下去会容易一些

无论如何,都要对学长您说一句感谢,后面我们也可以深入沟通和交流。

wu2305 avatar Jan 31 '23 18:01 wu2305

我们也在试图做到这两点,流程的话目前已经较为简单了,基本的pull push等git操作都是CS的学生们该学习的内容,不会有太大的难度。

前者的话,我在想能不能用actions去自动同步,但这个又回到了前面存储空间的问题。

在可预见的半年内,自动化维护工具很难出现……

哈哈我对学校里是不是教git深表怀疑

a-w-1806 avatar Jan 31 '23 19:01 a-w-1806

“抓人”可还行哈哈 这个repo很棒 我也希望能够接着存在下去 我的two cents是如果能把这个repo的运营给人带来的负担减小的很小 比如很多事情能自动化 或者有简洁易懂的流程可以参考 那抓人继续传下去会容易一些

无论如何,都要对学长您说一句感谢,后面我们也可以深入沟通和交流。

好滴!欢迎邮件或者vx交流,你可以把vx号发到我的邮箱哈哈

a-w-1806 avatar Jan 31 '23 19:01 a-w-1806

感觉主要是我当初放的文件 安装包 xmind之类的, 我这周想办法把他们换到稳定的外链,然后git内删除缓存. 不知道有没有自动化的方法, 不然感觉得咕咕咕好久(不是

tianyilt avatar Feb 06 '23 16:02 tianyilt

感觉主要是我当初放的文件 安装包 xmind之类的, 我这周想办法把他们换到稳定的外链,然后git内删除缓存. 不知道有没有自动化的方法, 不然感觉得咕咕咕好久(不是

目测看来不太好做自动化哈哈 不过说不定python script可以

a-w-1806 avatar Feb 06 '23 19:02 a-w-1806

感觉主要是我当初放的文件 安装包 xmind之类的, 我这周想办法把他们换到稳定的外链,然后git内删除缓存. 不知道有没有自动化的方法, 不然感觉得咕咕咕好久(不是

其实就是LFS的思路,稳定外链的话超星可能算一个,上传的Shell脚本我也已经写完了,但是如果要便于同学上传下载还是需要做成一个成熟稳定的工具,甚至不能是一个简单的py script CLI我在做了(咕咕咕······

wu2305 avatar Feb 07 '23 03:02 wu2305

差不多就是利用每个学校的/upload/uploadNew这个接口

wu2305 avatar Feb 07 '23 03:02 wu2305

超星的下载是不是公开的?而且支持使用多久?

tianyilt avatar Feb 07 '23 03:02 tianyilt

感觉主要是我当初放的文件 安装包 xmind之类的, 我这周想办法把他们换到稳定的外链,然后git内删除缓存. 不知道有没有自动化的方法, 不然感觉得咕咕咕好久(不是

其实就是LFS的思路,稳定外链的话超星可能算一个,上传的Shell脚本我也已经写完了,但是如果要便于同学上传下载还是需要做成一个成熟稳定的工具,甚至不能是一个简单的py script

CLI我在做了(咕咕咕······

CLI的话 我觉得除了cs的同学以外 根本不会用的 甚至估计很多cs的学生也不会用的

a-w-1806 avatar Feb 07 '23 23:02 a-w-1806

感觉主要是我当初放的文件 安装包 xmind之类的, 我这周想办法把他们换到稳定的外链,然后git内删除缓存. 不知道有没有自动化的方法, 不然感觉得咕咕咕好久(不是

其实就是LFS的思路,稳定外链的话超星可能算一个,上传的Shell脚本我也已经写完了,但是如果要便于同学上传下载还是需要做成一个成熟稳定的工具,甚至不能是一个简单的py script CLI我在做了(咕咕咕······

CLI的话 我觉得除了cs的同学以外 根本不会用的 甚至估计很多cs的学生也不会用的

确实,我看同类项目好像也不是这样搞的,都是直接ban掉这种大的附件。感觉要好用估计就是鼠标点点点的QT,感觉工作量有点大,而且功能定义还有待商榷。

tianyilt avatar Feb 27 '23 11:02 tianyilt

我想你说的QT应该是web ui之类的东西?

a-w-1806 avatar Mar 01 '23 01:03 a-w-1806

对的,ui。感觉太重了。

tianyilt avatar Mar 01 '23 05:03 tianyilt

专门开发一个UI出来肯定很麻烦,但如果跟我在 https://github.com/ECUST-Leap/ecust-leap.github.io 这里一样用个比如docusaurus之类的framework,那就容易些。主要的问题倒不是UI,而还是怎么serve这些data出去咯

a-w-1806 avatar Mar 01 '23 08:03 a-w-1806

能否将一些不需要持续维护的资源(如电子书,安装包等)归类放入 Releases?

lxl66566 avatar Mar 16 '23 15:03 lxl66566

还有,可以考虑对原图进行压缩。这里(压缩前 压缩后)是一个例子:在基本无损条件下,将图片大小压缩到了原先的 15%. (use https://imagestool.com )

lxl66566 avatar Mar 16 '23 15:03 lxl66566