msgbartop
用铅笔写日记,记录那最原始的美丽
msgbarbottom

突破百度网盘普通用户保存文件限制数量1000的坑

最近公司年会,今天负责拍照的小伙伴把年会上拍摄的照片(没打包)的文件夹传到了百度网盘里面,分享给大家供下载。

一般我的操作是直接选中该文件夹然后点击“保存到我的网盘”,设置一个目录就完事了。看不看那是以后的事情。

结果坑爹的事情来了,经过长时间的卡顿之后,提示我“文件数量超过1000,出错了”。

后来一查才知道,普通用户是有这个限制的。开通超级会员就没这个限制了,可能有,但是上限可能是几万,而不是少的可怜的1000.

我最初的想法是,手动选文件。毕竟一共是1185张照片,全选,然后勾掉最后的185个文件就行了,只留1000个,最后再单独把185个保存下。

可能是当我点到第20个时候我放弃了,太tmd难点了。。。

尝试1:
因为考虑到百度的web文件列表是lazy load 的,而且一次只加载100个文件。我先选中“全选”,100个文件被选中。而后慢慢的拉动滚动条,触发它再次加载100-200这个区间的文件。以此类推,可以坚持到900,或1000个文件被选中。这时候点击“保存到我的网盘”。也可以成功。只不过最后的1百多个文件需要手动处理,也不是很方便。而且不知为何,会产生重复文件的副本,需要手动删除。

不怎么完美。

尝试2:
考虑到其实我只是需要一个代替我手动点击的东西,研究了一下百度的html/css/js.发现了它文件列表的一些命名规律。

打开浏览器的开发者工具,console 栏,键入

$("dd.g-clearfix").each(function(i,it){if(i >= 0 && i < 800){$(it).children("span").trigger("click");}})

0 是开始的编号,800 是结束的编号。就是用脚本选中这1千多张照片里面的,第1到第800张照片。然后点击“保存到我的网盘”即可。

再一次执行该脚本,把 0 和 800 改成 800 到 1184,就可以只用两次保存搞定这1千多张照片。

BaiduPCS-Go:toplist SharlJimhTsin$ ls

当前目录: /我的照片/toplist
----
   #     文件大小        修改日期                文件(目录)           
     0      4.78MB  2019-01-28 18:26:54  K75A1446.JPG                 
     1      5.47MB  2019-01-28 18:26:54  K75A1447.JPG                 
     2      5.16MB  2019-01-28 18:26:54  K75A1451.JPG                 
     3      9.19MB  2019-01-28 18:26:54  K75A1453.JPG                 
     4      5.15MB  2019-01-28 18:26:54  K75A1455.JPG                 
     5      6.14MB  2019-01-28 18:26:55  K75A1459.JPG                 
     6      5.07MB  2019-01-28 18:26:55  K75A1460.JPG                 
     7      8.76MB  2019-01-28 18:26:55  K75A1462.JPG                 
     8      4.37MB  2019-01-28 18:26:55  K75A1464.JPG                 
     9      9.63MB  2019-01-28 18:26:55  K75A1468.JPG                 
    10      9.40MB  2019-01-28 18:27:01  K75A1472.JPG                 
    11      4.97MB  2019-01-28 18:27:01  K75A1474.JPG                 
    12      8.48MB  2019-01-28 18:27:01  K75A1475.JPG                 
    13      9.09MB  2019-01-28 18:27:01  K75A1476.JPG                 
    14      8.24MB  2019-01-28 18:27:01  K75A1479.JPG                 
    15      7.60MB  2019-01-28 18:27:02  K75A1480.JPG                 
    16      8.92MB  2019-01-28 18:27:02  K75A1481.JPG                 
    17      9.12MB  2019-01-28 18:27:02  K75A1482.JPG                 
    18      8.46MB  2019-01-28 18:27:02  K75A1483.JPG                 
    19      6.92MB  2019-01-28 18:27:02  K75A1484.JPG                 
    20      7.09MB  2019-01-28 18:27:02  K75A1485.JPG                 
    21      6.59MB  2019-01-28 18:27:02  K75A1487.JPG                 
    22      9.07MB  2019-01-28 18:27:03  K75A1489.JPG                 
    23      9.07MB  2019-01-28 18:27:03  K75A1496.JPG                 
    24     10.38MB  2019-01-28 18:27:03  K75A1498.JPG                 
    25      8.09MB  2019-01-28 18:27:03  K75A1499.JPG                 
    26      6.30MB  2019-01-28 18:27:04  K75A1502.JPG                 
    27      6.92MB  2019-01-28 18:27:04  K75A1503.JPG                 
    28      5.56MB  2019-01-28 18:27:04  K75A1504.JPG                 
    29      5.40MB  2019-01-28 18:27:04  K75A1506.JPG                 
    30      3.33MB  2019-01-28 18:27:04  K75A1510.JPG                 
    31     17.11MB  2019-01-28 18:27:05  K75A1516.JPG                 
    32     14.67MB  2019-01-28 18:27:05  K75A1518.JPG                 
    33      8.29MB  2019-01-28 18:27:05  K75A1520.JPG                 
    34      8.53MB  2019-01-28 18:27:05  K75A1521.JPG                 
    35      8.99MB  2019-01-28 18:27:05  K75A1522.JPG                 
    36      8.72MB  2019-01-28 18:27:05  K75A1523.JPG                 
    37      8.23MB  2019-01-28 18:27:06  K75A1524.JPG                 
    38     10.21MB  2019-01-28 18:27:06  K75A1526.JPG                 
    39      8.43MB  2019-01-28 18:27:06  K75A1528.JPG                 
    40      8.78MB  2019-01-28 18:27:06  K75A1529.JPG                 
    41     10.38MB  2019-01-28 18:27:06  K75A1530.JPG                 
    42      9.29MB  2019-01-28 18:27:06  K75A1531.JPG                 
    43     11.84MB  2019-01-28 18:27:07  K75A1532.JPG                 
    44      9.63MB  2019-01-28 18:27:07  K75A1533.JPG                 
    45      8.58MB  2019-01-28 18:27:08  K75A1534.JPG                 
    46      6.74MB  2019-01-28 18:27:08  K75A1535.JPG                 
    47      9.61MB  2019-01-28 18:27:09  K75A1536.JPG                 
    48      9.98MB  2019-01-28 18:27:11  K75A1537.JPG                 
    49     10.04MB  2019-01-28 18:27:11  K75A1538.JPG                 
    50     10.48MB  2019-01-28 18:27:12  K75A1539.JPG                 
    51      9.58MB  2019-01-28 18:27:13  K75A1540.JPG                 
    52     10.41MB  2019-01-28 18:27:14  K75A1541.JPG                 
    53     10.08MB  2019-01-28 18:27:16  K75A1542.JPG                 
    54     11.86MB  2019-01-28 18:27:16  K75A1544.JPG                 
    55     11.79MB  2019-01-28 18:27:16  K75A1545.JPG                 
    56     11.81MB  2019-01-28 18:27:16  K75A1546.JPG                 
    57     11.18MB  2019-01-28 18:27:16  K75A1547.JPG                 
    58     10.28MB  2019-01-28 18:27:17  K75A1548.JPG                 
    59     10.19MB  2019-01-28 18:27:17  K75A1549.JPG                 
    60     10.63MB  2019-01-28 18:27:17  K75A1550.JPG                 
    61      9.65MB  2019-01-28 18:27:17  K75A1551.JPG                 
    62     10.26MB  2019-01-28 18:27:17  K75A1552.JPG                 
    63      5.99MB  2019-01-28 18:27:18  K75A1553.JPG                 
    64      5.77MB  2019-01-28 18:27:18  K75A1554.JPG                 
    65      5.74MB  2019-01-28 18:27:18  K75A1555.JPG                 
    66      5.56MB  2019-01-28 18:27:18  K75A1556.JPG                 
    67      5.65MB  2019-01-28 18:27:18  K75A1557.JPG                 
    68      5.77MB  2019-01-28 18:27:18  K75A1558.JPG                 
    69      5.94MB  2019-01-28 18:27:19  K75A1560.JPG                 
    70      5.64MB  2019-01-28 18:27:19  K75A1561.JPG                 
    71      4.44MB  2019-01-28 18:27:19  K75A1562.JPG                 
    72      4.62MB  2019-01-28 18:27:19  K75A1563.JPG                 
    73      5.88MB  2019-01-28 18:27:19  K75A1564.JPG                 
    74      5.84MB  2019-01-28 18:27:19  K75A1565.JPG                 
    75      4.78MB  2019-01-28 18:27:20  K75A1566.JPG                 
    76      4.88MB  2019-01-28 18:27:20  K75A1567.JPG                 
    77      4.74MB  2019-01-28 18:27:20  K75A1568.JPG                 
    78      4.81MB  2019-01-28 18:27:20  K75A1569.JPG                 
    79      5.57MB  2019-01-28 18:27:20  K75A1570.JPG                 
    80      5.53MB  2019-01-28 18:27:20  K75A1571.JPG                 
    81      5.36MB  2019-01-28 18:27:21  K75A1572.JPG                 
    82      5.23MB  2019-01-28 18:27:21  K75A1573.JPG                 
    83      5.46MB  2019-01-28 18:27:21  K75A1574.JPG                 
    84      5.43MB  2019-01-28 18:27:21  K75A1575.JPG                 
    85      6.09MB  2019-01-28 18:27:21  K75A1576.JPG                 
    86      5.99MB  2019-01-28 18:27:21  K75A1577.JPG                 
    87      6.30MB  2019-01-28 18:27:22  K75A1578.JPG                 
    88      5.06MB  2019-01-28 18:27:22  K75A1579.JPG                 
    89      5.11MB  2019-01-28 18:27:22  K75A1580.JPG                 
    90      5.64MB  2019-01-28 18:27:22  K75A1581.JPG                 
    91      5.69MB  2019-01-28 18:27:22  K75A1582.JPG                 
    92      4.64MB  2019-01-28 18:27:22  K75A1583.JPG                 
    93      4.59MB  2019-01-28 18:27:23  K75A1584.JPG                 
    94      5.60MB  2019-01-28 18:27:23  K75A1585.JPG                 
    95      5.29MB  2019-01-28 18:27:23  K75A1587.JPG                 
    96      5.24MB  2019-01-28 18:27:23  K75A1588.JPG                 
    97      6.43MB  2019-01-28 18:27:23  K75A1589.JPG                 
    98      6.43MB  2019-01-28 18:27:24  K75A1590.JPG                 
    99      6.12MB  2019-01-28 18:27:24  K75A1591.JPG                 
   100      6.18MB  2019-01-28 18:27:24  K75A1592.JPG                 
.........
  1177      7.71MB  2019-01-28 17:18:51  K75A2816.JPG                 
  1178      7.76MB  2019-01-28 17:18:51  K75A2817.JPG                 
  1179      7.54MB  2019-01-28 17:18:51  K75A2818.JPG                 
  1180      7.83MB  2019-01-28 17:18:50  K75A2819.JPG                 
  1181      7.17MB  2019-01-28 17:18:50  K75A2820.JPG                 
  1182      6.90MB  2019-01-28 17:18:50  K75A2821.JPG                 
  1183      7.38MB  2019-01-28 17:18:50  K75A2822.JPG                 
  1184      6.70MB  2019-01-28 17:18:50  K75A2823.JPG                 
        总: 9.35GB                       文件总数: 1185, 目录总数: 0  

当前目录: /我的照片/toplist
----

比较完美。

注:若是产生了副本文件,可以考虑使用 BaiduPCS-Go (https://github.com/iikira/BaiduPCS-Go) 开源客户端,直接删除即可。

BaiduPCS-Go:toplist SharlJimhTsin$ rm *(1).JPG
文件路径匹配失败, 请检查通配符
BaiduPCS-Go:toplist SharlJimhTsin$ rm *(2).JPG
文件路径匹配失败, 请检查通配符

还有需要注意的是,第二种方法执行脚本前一定要先把文件列表的lazy load 全部加载完。鼠标一直拖到下面,拖到不能再拖。否则元素数量可能会少。

当然了,这些问题如果你已经是百度网盘超级会员,根本不是问题。:-)

本站已托管至谷歌云平台

最近忽然对国外的几个互联网巨头的云服务产生了浓厚的兴趣,利用手里的外币卡分别开通了Amazon AWS,Microsoft Azure 以及 Google GCP.

AWS 和 GCP 都声称可以免费试用一年,分别给了一定的试用金额度,以两者中先消耗殆尽的为准。

Azure 的免费试用期只有一个月,后来发现一个月到期后只要升级到 即用即付 订阅,微软还是提供了几个low-level 的云产品的一年试用配额的,也算是有点良心啊~哈哈

不过GCP 和 Azure 一年试用到期后,我是不打算在继续用了,因为微软的太贵,而谷歌的线路炸的太厉害,可能是国内很多人通过“删除结算账号,再添加一张新信用卡”的方式,反复获取那$300一年的免费试用周期吧,给我感觉很不稳定。

倒是 AWS 让我眼前一亮,AWS Lightsail 套餐月付只有$3.5,折合人民币二十几块钱,日本线路ping 值很低,几乎50+- ms,性价比极高。本人吐血推荐购买。

以上是题外话。

本来我的博客是托管在搬瓦工(BWH)上面的,也是同样的问题,线路炸的太频繁,没有让我感觉到它的任何优点。一次偶然的机会让我看到了GCP 提供一个美区(不包括北弗吉尼亚地区)的 f1-micro 实例供用户永久免费使用。具体配置如下:

每月 1 个 f1-micro 实例(仅限美国区域 - 不包括北弗吉尼亚地区)

每月 30 GB HDD,每月 5 GB 快照

每月 1 GB 网络出站流量 - 从北美到所有区域目的地(不包括中国和澳大利亚)

参见: Google Cloud Platform 免费方案

这让我眼前一亮,我现在这个bwh服务器年付$39.99,说实话用处也不大,速度嘛也没啥优势,况且我现在也套了cf 的 cdn,感觉没啥区别了。

留着它用处确实没啥,索性把网站搬到GCP 美区实例上去,把bwh 给退了。能省则省嘛,哈哈。

说干就干,找个空闲的时候,我就把数据,配置备份,然后在新实例上部署环境,确认两边ok后,把数据导入了进去。由于套了cf 的cdn,登陆cf 后台,改了一下DNS相关记录,就坐等生效了。

搬完之后访问了一下,速度还蛮OK的。

附延迟测试数据:

on GCP via Cloudflare
MacBook-Pro-3:Documents toplist$ ping xiazhengxin.name
PING xiazhengxin.name (104.27.176.20): 56 data bytes
64 bytes from 104.27.176.20: icmp_seq=0 ttl=54 time=179.096 ms
64 bytes from 104.27.176.20: icmp_seq=1 ttl=54 time=165.458 ms
64 bytes from 104.27.176.20: icmp_seq=2 ttl=54 time=221.086 ms
64 bytes from 104.27.176.20: icmp_seq=3 ttl=54 time=244.089 ms
64 bytes from 104.27.176.20: icmp_seq=4 ttl=54 time=266.278 ms
64 bytes from 104.27.176.20: icmp_seq=5 ttl=54 time=185.729 ms
64 bytes from 104.27.176.20: icmp_seq=6 ttl=54 time=208.304 ms
64 bytes from 104.27.176.20: icmp_seq=7 ttl=54 time=232.247 ms
64 bytes from 104.27.176.20: icmp_seq=8 ttl=54 time=254.497 ms
64 bytes from 104.27.176.20: icmp_seq=9 ttl=54 time=176.149 ms
64 bytes from 104.27.176.20: icmp_seq=10 ttl=54 time=198.623 ms
64 bytes from 104.27.176.20: icmp_seq=11 ttl=54 time=222.786 ms
64 bytes from 104.27.176.20: icmp_seq=12 ttl=54 time=244.178 ms
64 bytes from 104.27.176.20: icmp_seq=13 ttl=54 time=251.045 ms
64 bytes from 104.27.176.20: icmp_seq=14 ttl=54 time=188.904 ms
^C
--- xiazhengxin.name ping statistics ---
15 packets transmitted, 15 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 165.458/215.898/266.278/31.276 ms

on BWH
MacBook-Pro-3:Documents toplist$ ping bwh.xzx.im
PING bwh.xzx.im (104.153.103.172): 56 data bytes
64 bytes from 104.153.103.172: icmp_seq=0 ttl=50 time=141.367 ms
64 bytes from 104.153.103.172: icmp_seq=1 ttl=50 time=142.667 ms
64 bytes from 104.153.103.172: icmp_seq=2 ttl=50 time=145.147 ms
64 bytes from 104.153.103.172: icmp_seq=3 ttl=50 time=142.224 ms
64 bytes from 104.153.103.172: icmp_seq=4 ttl=50 time=188.251 ms
64 bytes from 104.153.103.172: icmp_seq=5 ttl=50 time=142.178 ms
64 bytes from 104.153.103.172: icmp_seq=6 ttl=50 time=234.048 ms
64 bytes from 104.153.103.172: icmp_seq=7 ttl=50 time=252.443 ms
64 bytes from 104.153.103.172: icmp_seq=8 ttl=50 time=170.327 ms
64 bytes from 104.153.103.172: icmp_seq=9 ttl=50 time=193.155 ms
64 bytes from 104.153.103.172: icmp_seq=10 ttl=50 time=217.860 ms
64 bytes from 104.153.103.172: icmp_seq=11 ttl=50 time=240.174 ms
64 bytes from 104.153.103.172: icmp_seq=12 ttl=50 time=160.681 ms
64 bytes from 104.153.103.172: icmp_seq=13 ttl=50 time=259.157 ms
64 bytes from 104.153.103.172: icmp_seq=14 ttl=50 time=271.898 ms
64 bytes from 104.153.103.172: icmp_seq=15 ttl=50 time=228.873 ms
^C
--- bwh.xzx.im ping statistics ---
16 packets transmitted, 16 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 141.367/195.653/271.898/46.145 ms

on GCP
MacBook-Pro-3:Documents toplist$ ping gcp.xzx.im
PING gcp.xzx.im (35.230.16.233): 56 data bytes
64 bytes from 35.230.16.233: icmp_seq=0 ttl=50 time=204.657 ms
64 bytes from 35.230.16.233: icmp_seq=1 ttl=50 time=226.352 ms
64 bytes from 35.230.16.233: icmp_seq=2 ttl=50 time=248.862 ms
64 bytes from 35.230.16.233: icmp_seq=3 ttl=50 time=169.600 ms
64 bytes from 35.230.16.233: icmp_seq=4 ttl=50 time=191.350 ms
64 bytes from 35.230.16.233: icmp_seq=5 ttl=50 time=219.921 ms
64 bytes from 35.230.16.233: icmp_seq=6 ttl=50 time=237.154 ms
64 bytes from 35.230.16.233: icmp_seq=7 ttl=50 time=261.225 ms
64 bytes from 35.230.16.233: icmp_seq=8 ttl=50 time=182.807 ms
64 bytes from 35.230.16.233: icmp_seq=9 ttl=50 time=203.962 ms
64 bytes from 35.230.16.233: icmp_seq=10 ttl=50 time=227.414 ms
64 bytes from 35.230.16.233: icmp_seq=11 ttl=50 time=250.583 ms
64 bytes from 35.230.16.233: icmp_seq=12 ttl=50 time=172.640 ms
64 bytes from 35.230.16.233: icmp_seq=13 ttl=50 time=194.657 ms
64 bytes from 35.230.16.233: icmp_seq=14 ttl=50 time=214.056 ms
64 bytes from 35.230.16.233: icmp_seq=15 ttl=50 time=230.942 ms
^C
--- gcp.xzx.im ping statistics ---
16 packets transmitted, 16 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 169.600/214.761/261.225/27.036 ms

本站已启用 Cloudflare CDN 加速

最近看到 Cloudflare 有免费cdn 的服务,还不限站点数量,挺好。所以就赶紧找个时间设置了一下。

首先把原先park 在 HE.Net 上的域名记录给dump 了下来,好在是
BIND zone format,cf 后台的操作界面可以直接导入,美滋滋~~~

之后就是到域名ISP那边把 DNS server 给改成 cf 的 ns 记录。

再然后就是等啦,大约5分钟吧,收到了 cf 的站点激活通知。网站正式可用了~

这是我测试的网站全球各节点的速度,还行吧。毕竟vps 在海外,加个速还是很有必要的,而且省去了我加装 cache server 的麻烦。还能有免费的统计看,还能预防一下 ddos.

总之,不亏。

本站点搬迁至 BandwagonHost VPS (搬瓦工)

之前一直在用digitalocean 的VPS,怎奈线路不畅,官网JS/CSS被墙,支付困难等诸多原因。并且价格也不算便宜。

不得不说 同等配置的VPS bwh的价格要比DO划算很多。

我原先的DO 每月$5 512MB RAM,换成BWH的1GB 年付才$40,而且是接入中国主干网的。

自然是性价比高的很啊。

买了VPS后,装了系统,就计划着把DO上面的东西搬过来。前两天忙着结婚的事情没弄,最近快春节了闲了下来就上班弄弄。

今天总算全部OK了。

域名全部切换过来了,网站恢复访问。

而且速度应该也不错哦~

搬瓦工VPS:https://www.bwh1.net/index.php

注:顺便清理了失效友联,他们是:

  • 宁怡
  • 六维空间
  • 柠檬日记
  • typecho 升级到 1.1 正式版

    看到 Typecho 1.1(17.10.30) 正式版发布 (http://typecho.org/archives/135/)

    故下载升级安装。

    安装升级帮助文档:
    http://docs.typecho.org/upgrade