在基于服务器的开发过程中,经常需要把数据传到服务器上,本博文记录采用不同的工具来传输数据.
Onedrive
首先用google浏览器(Chrome)打开OneDrive的分享链接,然后按F12打开开发者工具,切换到Network选项卡,如下所示:
然后点击下载的按钮,可以看到刷新Network选项卡,找到一个以download开头的请求,右键点击,选择Copy -> Copy as cURL(bash格式):
接下来复制到命令行。同时在末端输入--output filename.bag。就可以正常下载了~
百度网盘
首先需要安装bypy包:pip install bypy
然后配置百度网盘的账号密码:bypy info。
将命令行提示的链接复制到浏览器,并复制浏览器中的授权码,粘贴到终端并回车(注意是粘贴到终端)
可以看到百度云盘中出现了我的网盘/我的应用数据/bypy文件夹,该文件夹将是服务器与百度云盘间沟通的桥梁。因此,需要将下载的数据放在bypy文件夹中。
常用的命令如下:
# 查看帮助
bypy --help
# 查看网盘文件
bypy list
# 下载文件或目录
bypy download [remotepath] [localpath]
# 上传文件或目录
bypy upload [localpath] [remotepath]
#开多线程加速下载
bypy --downloader aria2 download 远程目录 本地路径
Google Driver
首先需要下载Gdown
pip install gdown
若出现下面报错,则执行pip install --upgrade --no-cache-dir gdown
Access denied with the following error:
Cannot retrieve the public link of the file. You may need to change
the permission to 'Anyone with the link', or have had many accesses.
You may still be able to access the file from the browser:
然后通过终端,进入对应的目录下,运行(-c好像是可以实现断点重新下载)。而所谓的标识符就是通过获取分享链接的id得到的,见如下图。
gdown https://drive.google.com/uc?id=标识符
或
gdown -c https://drive.google.com/uc?id=标识符
也可以通过下面代码实现批量式下载~
import gdown
import re
# 读取文件ID列表
with open('file_ids.txt', 'r') as file:
for line in file:
url = line.strip()
# 跳过以 # 开头的行
if url.startswith('#'):
continue
# 使用正则表达式提取文件ID
file_id = re.search(r'https://drive\.google\.com/file/d/([^/]+)/', url)
if file_id:
print(f"从 URL 提取文件 ID: {file_id.group(1)}")
file_id = file_id.group(1)
download_url = f"https://drive.google.com/uc?id={file_id}"
# gdown.download(download_url, quiet=False,use_cookies=False)
try:
# 尝试下载文件
gdown.download(download_url, quiet=False)
except PermissionError as e:
print(f"下载文件时发生权限错误: {e}. 将继续下载下一个文件。")
except Exception as e:
print(f"下载文件时发生错误: {e}. 将继续下载下一个文件。")
else:
print(f"无法从 URL 提取文件 ID: {url}")
# gdown https://drive.google.com/uc?id=标识符