使用bypy让Linux和百度云实现文件互传

作为一只科研生信狗,每晚卷完时,时常会担心自己的数据安全问题(虽然也没啥重要成果)。使用实验室的硬盘备份,还需要插-拔-查等步骤(摔坏了还得你赔)。

这是如果能通过一行代码直接把自己的 数据备份到云盘,是多么的舒适~ 作为一个常年给百度会员交保护费的娃,得使劲用下云盘,不然老觉得亏了点啥~~

这里只需要在linux-server上安装Python client for Baidu Yun(百度云/百度网盘 Python 客户端) bypy(没有root权限时,使用conda):

#这里可以考虑单独创建个环境,不要把所有软件都放在base下,会引起各种冲突的。
conda create -n baiduyun python=3
conda activate baiduyun
conda install -c jiayi_anaconda bypy
#使用时,需要先让百度授权
bypy info

先把第一个框内的链接复制到浏览器打开,然后你会看到如下授权码,复制到linux终端里,回车确认。

一.上传

#建议创建一个名为upload的文件夹,用于每日把需要备份上传的文件mv到该目录
#然后cd到该目录
cd upload
#把需要备份的文件mv到upload后,nohup后台开始上传,然后你就可以走人了。
nohup bypy upload &
#如果嫌上传的慢,可以调用多线程,同步起飞!
nohup bypy upload --processes 10 &

#需要注意由于百度PCS API权限限制,数据只能存放在 全部文件/我的应用数据/bypy目录下。
#每天早上检查备份完后,最好及时整理下。
#compare命令可以检查当前文件夹下文件与云盘里的文件是否一致。即上传成功了没有!
bypy compare 
#如果失败了也无所谓,重新提交一遍upload命令,他会自动检测没有上传成功的文件并继续上传。

二.下载

#把云盘 全部文件/我的应用数据/bypy 目录下的文件全部下载到server的当然文件夹下
bypy syncdown --downloader aria2 ./
或者
bypy downdir --downloader aria2 ./
#使用aria2 加速下载!

#在server上查看 云盘里的 文件列表
bypy list
#把云盘特定的文件下载到server
bypy downdir xxx.txt ./
#也可以下载文件夹(递归)
bypy downdir wenjianjia ./

 使用百度会员,下载速度可以达到6-7MB/s,如果不是会员,和客户端一样的,几十K吧,非常非常慢。

使用提速

如果办理了百度会员觉得还不够快,其实软件还有一些选项参数可选。首先支持多线程下载。可以通过--process参数设置。但是千万不要设置太多,容易被百度加入黑名单。

bypy -v --processes 6 downdir GATK4

仅仅提高到6MB/s,感觉不明显。

可以选择第二种方式,下载aria2进行提速。

mamba install -y aria2

接下来调用aria2进行下载。

bypy -v  --downloader aria2 downdir GATK4
 

这次速度一下子飙升到12M/s,快了很多很多了。

三.其他参数

#通过bypy -h 查看其他参数的使用方法
#往 云盘端 创建文件夹
bypy mkdir xxx
#获取云盘文件信息。get information of the given path (dir / file) at Baidu Yun.
bypy meta xxx
#检索云盘里的文件(递归式)。search for a file using keyword at Baidu Yun
bypy search xxx
#重命名云端文件名
bypy rename xxx xxxxxx
#运行时添加 -v ,显示进度详情。
bypy -v
#运行时添加 -d ,显示一些调试信息。
bypy -d
#运行时添加 -ddd ,显示HTTP通讯信息
bypy -ddd

等等~ 你应该明白等等是什么意思 -.-

当然如果有root权限,也可以直接安装在底层:

yum install python-pip
pip install requests
pip install bypy
vim ~/.bashrc 
export PATHxxxx 
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你可以使用Python的datetime、os、shutil、time以及bypy库来实现该功能。以下是示例代码: ```python import datetime import os import shutil import time import bypy # 设置需要压缩的文件夹路径 folder_path = '/path/to/folder' # 获取当前时间 now = datetime.datetime.now() # 判断是否为工作日且是否到了每日三点半 if now.weekday() < 5 and now.hour == 3 and now.minute == 30: # 设置压缩包的名称为当前日期时间 zip_name = now.strftime('%Y%m%d%H%M%S') + '.zip' # 压缩文件夹中的所有文件 shutil.make_archive(zip_name[:-4], 'zip', folder_path) # 删除原文件夹中的所有文件 for file in os.listdir(folder_path): file_path = os.path.join(folder_path, file) if os.path.isfile(file_path): os.remove(file_path) # 初始化bypy并上传压缩包到百度网盘 bp = bypy.ByPy() bp.upload(zip_name, '/path/to/remote/folder') # 删除本地压缩包 os.remove(zip_name) ``` 在上述代码中,首先设置需要压缩的文件夹路径。然后获取当前时间,判断是否为工作日且是否到了每日三点半。如果满足条件,就设置压缩包的名称为当前日期时间,使用shutil库将文件夹中的所有文件压缩成zip格式的压缩包,然后遍历文件夹中的所有文件并删除它们。接着使用bypy库初始化并上传压缩包到百度网盘指定的路径,最后删除本地压缩包。需要注意的是,需要在代码中设置正确的本地文件夹路径和百度网盘远程文件夹路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值