linux 服务器利用阿里网盘API实现文件的上传和下载
文章目录
- 背景
- 脚本
- 初始化
- 阿里云盘API工具 aligo
- 安装aligo
- aligo教程
- 实战
- parse.py
- 演示
- 上传文件
- 上传文件夹
- 下载文件
- 下载文件夹
背景
最近在用ubuntu系统做实验,而ubuntu 系统的文件上传和下载操作很麻烦;
于是便打算使用阿里网盘的API 进行文件下载与上传;
其实更主要的是想 备份本地文件到网盘和从网盘下载文件;
脚本
初始化
阿里云盘API工具 aligo
点击查看Aligo github
方便在linux服务器上使用,只需要填入一个刷新的token就可以了。
安装aligo
pip install aligo
aligo教程
请读者自行浏览
- wiki
- 案例
实战
chrome抓包 获得refresh_token
import aligo from aligo import Aligo refresh_token = "抓包拿到的refresh_token" ali = Aligo(refresh_token=refresh_token)
查看你的用户信息,就知道是否登录成功了
print(ali.get_user())
parse.py
import argparse import aligo from aligo import Aligo ali = Aligo() def down_file_or_folder(remote_path, local_folder, is_file=False): file = ( ali.get_file_by_path(remote_path) if is_file else ali.get_folder_by_path(remote_path) ) if is_file: ali.download_file(file_id=file.file_id, local_folder=local_folder) else: ali.download_folder(folder_file_id=file.file_id, local_folder=local_folder) def upload_file_or_folder(local_file_folder, remote_folder, is_file=False): remote_folder_id = ali.get_folder_by_path(remote_folder).file_id if is_file: ali.upload_file(file_path=local_file_folder, parent_file_id=remote_folder_id) else: ali.upload_folder( folder_path=local_file_folder, parent_file_id=remote_folder_id ) def main(): parser = argparse.ArgumentParser( description="Download file or folder from Aliyun Drive. 默认下载 & 文件夹" ) parser.add_argument("-up", "--is_up", action="store_true", help="默认是下载模式") parser.add_argument( "-f", "--is_file", action="store_true", help="默认是上传和下载文件夹" ) parser.add_argument( "-r", "--remote", action="store", required=True, metavar="REMOTE_FOLDER_PATH", help="specify the remote file or folder path to download or upload.", ) parser.add_argument( "-l", "--local", action="store", required=True, metavar="LOCAL_FOLDER_PATH", help="specify the local file or folder path to download or upload.", ) args = parser.parse_args() print(args.__dict__) is_upload, is_file, remote, local = ( args.is_up, args.is_file, args.remote, args.local, ) # 上传 if is_upload: print("上传...") upload_file_or_folder( local_file_folder=local, remote_folder=remote, is_file=is_file ) else: print("下载...") down_file_or_folder(remote_path=remote, local_folder=local, is_file=is_file) main()Download file or folder from Aliyun Drive. 默认下载 & 文件夹 options: -h, --help show this help message and exit -up, --is_up 不填是下载,填是上传 -f, --is_file 不填默认是上传和下载文件夹,填了上传和下载文件 -r REMOTE_FOLDER_PATH, --remote REMOTE_FOLDER_PATH specify the remote file or folder path to download or upload. -l LOCAL_FOLDER_PATH, --local LOCAL_FOLDER_PATH specify the local file or folder path to download or upload.演示
在upload_test文件夹下,有up.txt文件;
在阿里云盘,创建 tmp 文件夹,再在其下创建 parse文件夹
上传文件
python parse.py -f -up -r tmp/parse -l upload_test/up.txt
上述脚本实现将 本地 upload_test/up.txt 上传到阿里网盘的 tmp/parse 文件夹下;
如下图所示,文件上传成功:
上传文件夹
python parse.py -up -r tmp/parse -l upload_test
上述脚本实现,将 本地 upload_test 文件夹上传到阿里网盘的 tmp/parse 文件夹下;
如下图所示,文件夹上传成功:
下载文件
python parse.py -f -r tmp/parse/up.txt -l down_test
上述脚本实现,将 阿里网盘的 tmp/parse/up.txt文件下载到本地 down_test 文件下;
如下图所示,up.txt 文件下载成功:
下载文件夹
python parse.py -r tmp/parse/upload_test -l down_test
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!







