Google Driver 传输类似 node_modules 这样的文件太慢

2020-08-27 18:14:36 +08:00
 ymlog

一直在用 google 云,最近把 hexo 生成的博客放在了 google 云里,传输小文件且数量特别多的是很慢;

网上给出了一种解决方法,就是把文件夹压缩,上传到 google 云后在线解压,然后再同步到本地,速度可以快一倍,我试了一次,结果里面所有中文标题的文件都乱码了

5564 次点击
所在节点    程序员
82 条回复
mgrddsj
2020-08-28 13:16:42 +08:00
Google 搜索 Google Backup and Sync ignore …,就会出现候选 "ignore node_modules" 了。基本上都是推荐使用第三方 Google Drive 客户端把它 exclude 掉,或者改用 Git 。
ymlog
2020-08-28 13:44:20 +08:00
@vanxy 我也知道可以 npm 安装,但是你不理解我的需求
skies457
2020-08-28 13:44:41 +08:00
@linliting45 #25 存档和发布当然用 github (也不应该上传 node_modules ),但是工作环境可以用网盘同步呀
skies457
2020-08-28 13:46:07 +08:00
@lslqtz #26 理想的话应该能从网盘直接启动系统,不要让产品的局限性阻碍了我们的想象力(逃
skies457
2020-08-28 13:48:24 +08:00
@ysc3839 #36 每次 package.json 变动的时候都要在所有设备上重新 npm install 呀。node_modules 上传太久是网盘的错,不是用户的错
skies457
2020-08-28 13:50:42 +08:00
@vanxy #57 我同步了至少 20 个(逃
ysc3839
2020-08-28 13:55:13 +08:00
@skies457 确实是有变动后需要手动更新的问题,不过大概可以通过 IDE 或者其他软件解决。比如用 Git 同步的话,就可以用 git 的 hook 功能。
node_modules 上传慢是网盘的锅,但是在网盘本身不能解决这个问题,用户又一定要用这个网盘的情况下,只能自己忍受不爽了。
no1xsyzy
2020-08-28 15:17:47 +08:00
@hlwjia #20 怪 deno 出得太慢(

node_modules 是有 native 的
virtualenv 碰上过 WSL 内外不兼容的情况
ruby 环境有多少 native,吓死人,Github Pages 自动安装依赖,三个里面有两个是 native,全部安装下来甚至缺几个包需要单独安装 ( ruby-dev zlib1g-dev )……
justin2018
2020-08-28 15:22:11 +08:00
@Osk 确实挺坑 上次 dropbox 同步忘记排除了 同步了几千个文件 而且 很慢~~~
HangoX
2020-08-28 15:38:20 +08:00
不太明白这个东西为什么一定要上传,hexo 配置好之后这个东西其实一般是固定大小的。
如果你在多个设备都有使用这个 hexo,每个地方都初始化一遍其实还能接受,你是因为每次都用新设备写文章吗?、
如果不是,弄个快捷运行的东西双击直接执行 npm 一次,这个成本应该会更低一点
ymlog
2020-08-28 15:39:49 +08:00
@HangoX 不想 markdown 文件丢失,于是就同步了 hexo 的目录,但是 node_modules 不能排除在外,Google Driver 应该没有.git ignore 的功能
hst001
2020-08-28 15:53:09 +08:00
我的天,你居然往别人的服务器传黑洞!
krixaar
2020-08-28 16:14:15 +08:00
@ymlog 所以说你到底试没试 mklink ?
littlewing
2020-08-28 17:19:51 +08:00
下次把 js 源码,linux 源码也传一份
NoUltimate
2020-08-28 17:32:44 +08:00
服务器跑不动可以试试 azure pipline,私有仓库有时间限制,公共仓库好像免费,不过我都是 azure 打包成 docker 镜像然后自己服务器去拉下来
ymlog
2020-08-28 19:36:54 +08:00
@krixaar 以前用过软链接和硬链接,感觉不太喜欢,技术上可行,但是本该是一个目录的东西放在不同地方,强迫症难受,现在打算用 yarn,比 npm 快
ymlog
2020-08-28 19:44:27 +08:00
@12101111 @Augi @Cielsky @HangoX @Hyoban @KuroNekoFan @Lxxyx @MrTreasure @NoUltimate @Osk

老哥们,写了个脚本算是最终解决方案吧,先生成渲染 markdown 的环境、用完了删除,有兴趣的可以看一下:
(如果觉得这里看代码不太行,可以看这个博客 8 月 28 号的更新: http://code.ymlog.cn/post/687d0838.html

其实刚开始是很反对把 node_modules 删掉的,后来因为这个文件夹太恶心,很多 v2exr 老哥又都建议我删掉,就直接删了,每次渲染的时候再装回来



# 修改时间:2020/8/25
# Description:
# 0 、yarn 安装 node_modules 模块
# 1 、将本地 hexo 的 markdown 渲染成 html 放到 public 目录
# 2 、打包 public 目录并上传到云端解压
# 3 、在云端解压到 /blog/public/ ——该路径是 nginx 的 root 路径
# 4 、删除 public 、node_modules,删除 7 天前的备份文件
# 5 、备份当前 hexo 目录


echo "生成 node_modules"
yarn install

echo "generate public"
hexo g

echo "删除 node_modules"
rm -rf ./node_modules

echo "打包 public 目录"
tar -zcf public.tar.gz public

echo "上传 public 目录"
scp -i "C:\\Users\\ym\\.ssh\\id_rsa" -o "StrictHostKeyChecking=no" public.tar.gz root@huawei:/root/

echo "解压云端文件"
ssh -i "C:\\Users\\ym\\.ssh\\id_rsa" -o "StrictHostKeyChecking=no" root@huawei 'rm -rf /blog/public && tar -zxf /root/public.tar.gz -C /blog/'

echo "清除 public 目录"
rm -rf public
rm -fr public.tar.gz

echo "删除 7 天前的备份"
find ../backup/ -name hexo_backup_* -ctime +15 -exec rm -rf {} \;

echo "备份当前 hexo 目录"
tar -zcf ../backup/hexo_backup_$(date '+%Y-%m-%d').tar.gz *
ymlog
2020-08-28 19:45:35 +08:00
那个是删除 15 天前的备份,习惯性的写成了 7 天
ymlog
2020-08-28 19:46:18 +08:00
@hst001 今日份幽默,已经删了 node_modules 文件夹了,这玩意儿有毒
ymlog
2020-08-28 19:47:24 +08:00
@kekxv 是的,很有道理,已经放弃传输 Node_modules 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/701989

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX