linux 服务器利用阿里网盘API实现文件的上传和下载
创始人
2025-01-20 04:03:38
0

文章目录

  • 背景
  • 脚本
      • 初始化
    • 阿里云盘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 

在这里插入图片描述

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...