项目代码: https://github.com/AndersonBY/aliyun-oss-x
起因是我的一些服务跑在阿里云的函数计算上,最近感觉冷启动实在是太慢了,查了一下发现阿里云官方的 oss2 模块的导入实在是相当耗时,我用最低配的函数计算服务冷启动大概需要花 5 秒才能导入完 oss2 。而我大部分的函数计算实际上只需要简单的文件上传和下载,所以打算自己改写一下官方的 oss2 模块,于是就有了这个 aliyun-oss-x 模块。
我大概花了一天多的时间把 oss2 项目简单重构了一下,底层从 requests 改成了 httpx ,所以可以支持异步方法的使用了,而且我花了不少时间把尽量能懒加载的模块都延迟加载了,以及把类型标注给补上了一些。
简单说一下我看到 oss2 的一些问题。
目前 1~3 都解决了,4 的话要花很多时间暂时没做太多调整。我简单测了基本的一些对象操作(同步和异步)都没有问题,但是可能有不太常用的功能会有问题,暂时没有完整测试过。
另外我简单测试了一下用新模块之后函数计算的冷启动少了一半时间,而且内存占用也从 70 M 降到了 40 M 。至少冷启动这里的耗时降低能直接给我省钱了。
欢迎有兴趣的朋友可以试试看,有问题的话随时提 issue 。
1
CassianVale 28 天前
前两天自己项目加了 oss2 ,打包体积直接变大,并且还找不到 aliyunsdkcore 下面的 retry_config.json 等几个 json 文件,不知道是打包工具的问题还是 aliyunsdkcore 的问题
|
2
makerbi OP @CassianVale 估计是打包的问题,可以直接用 aliyun-oss-x 替代试试,默认是不需要 aliyunsdkcore 的。
|