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 argparseimport aligo
from aligo import Aligoali = Aligo()def down_file_or_folder(remote_path, local_folder, is_file=False):file = (ali.get_file_by_path(remote_path)if is_fileelse 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_idif 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_PATHspecify the remote file or folder path to download orupload.-l LOCAL_FOLDER_PATH, --local LOCAL_FOLDER_PATHspecify the local file or folder path to download orupload.

演示

在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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾锐D2000-8 MXM VPX,全国产,可广泛应用于边缘计算网关、入侵检测、VPN、网络监控等等应用领域

腾锐D2000-8 MXM VPX 1. 概述 XMVPX-108 是一款基于飞腾 D2000/8 处理器的低功耗逻辑运算和图形处理 VPX 刀片, 板贴 32GB DDR4 内存,搭载飞腾 X100 套片,满足通用 IO 接口功能。GPU 采用 MXM 小型插卡形式, 搭配 8GB 显卡。提供…

NIO和NIO.2对比

Java NIO (New Input/Output) 是从Java 1.4版本开始引入的一个新的I/O API,用于替代原来的BIO(Blocking I/O)API。NIO提供了更加灵活和高效的网络通信方式,特别适合于高吞吐量的网络编程。NIO的主要特点是非阻塞模式,它…

3.4 无关、基和维度

这一节是关于子空间的真实大小。对于 m n m\times n mn 的矩阵,它有 n n n 个列,但是它真正的维数不一定为 n n n,维数可以由无关列的个数来得到。列空间的实际维度就是秩 r r r。 无关的概念是用于向量空间中的任意向量 v 1 , . . . ,…

【LAMMPS学习】八、基础知识(5.7)Drude感应偶极子

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

人工智能|推荐系统——工业界的推荐系统之召回

基于物品的协同过滤 ⽤索引,离线计算量⼤,线上计算量⼩ Swing额外考虑重合的⽤户是否来⾃⼀个⼩圈⼦,两个⽤户重合度⼤,则可能来⾃⼀个⼩圈⼦,权重降低。 基于用户的协同过滤 同样是离线计算索引,在线召回的流程 离散特征处理 Embedding 层参数数量=向量维度 类别数量 矩

DS高阶:图论算法经典应用

一、最小生成树(无向图) 在了解最小生成树算法之前,我们首先要先了解以下的准则: 连通图中的每一棵生成树,都是原图的一个极大无环子图,即:从其中删去任何一条边,生成树就不在连通&a…

mysql查询数据不对

sum(id)是算id这一列的数值总和,无论主键与否,sum都是算数值总和 count(id)或count(*)是算当前列的行数,id是主键才行

FIFO Generate IP核使用——AXI接口FIFO简介

AXI接口FIFO是从Native接口FIFO派生而来的。AXI内存映射接口提供了三种样式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的应用外,AXI FIFO还可以用于AXI系统总线和点对点高速应用。 AXI接口FIFO不支持Builtin FIFO和 Shift Register FIFO配置。 当…

WebSocket 多屏同显和异显

介绍 多屏同显:通过在一个应用上进行操作之后,另一个应用也能跟着一起发生改变,例如app1播放了晴天这首音乐,那么app2也要同步播放这首音乐,确保所有屏幕显示的内容完全相同。多屏异显:每个屏幕可以显示不同的内容,或者在内容更新时存在一定的延迟,而不需要严格保持同步…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(四)

本系列课程,将重点讲解Phpsploit-Framework框架软件的基础使用! 本文章仅提供学习,切勿将其用于不法手段! 继续接上一篇文章内容,讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 当我们牢记登陆账户、…

题目:线性代数

问题描述: 解题思路: 列相乘,然后行相加。 注意点:由于元素数据范围最大为1e6,两个元素相乘乘积最大为1e12,如果元素类型为int则在乘的过程中就会爆炸,所以需要开long long类型。 AC代码…

Redis---------分布式锁Redisson

概述 Redisson入门 第一步&#xff1a;引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.13.6</version></dependency> 第二步&#xff1a;配置文件 import org.redisson…

MapReduce概述

批处理模式 首先我们需要先了解一个概念&#xff1a;批处理模式 批处理模式是一种最早进行大规模数据处理的模式。 批处理非常适合需要访问整个数据集合才能完成的计算工作。 批处理主要操作大规模静态数据集,并在整体数据处理完毕后返回结果。 例如,在计算总数和平均数时,必须…

基于小程序实现的投票评选系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

MySQL①——数据库与表格的创建

今日任务&#xff1a; 创建一个名为“db_classes”的数据库 创建一行名为“db_hero”的表 将四大名著中的常见人物插入这个英雄表 数据库的创建与删除 create 命令&#xff08;创建&#xff09;&#xff1a; create database 数据库名&#xff1b;#参数默认create database …

制冷用气液分离器介绍

一、什么是气液分离器&#xff1f; 制冷系统作为一个整体除了四大件&#xff08;压缩机、冷凝器、节流装置、蒸发器&#xff09;以外还有很多附属部件&#xff0c;如今天要介绍的——气液分离器。 什么是气液分离器&#xff1f; 汽液分离器的主要作用是&#xff1a;在启动、…

WAAP动态安全解决方案

随着企业数字化进程不断加速&#xff0c;应用安全面临多重威胁&#xff0c;新型攻击方式层出不穷&#xff0c;常见的攻击形式包括Web应用攻击、DDoS攻击、API攻击、恶意爬虫攻击等。企业正面临严峻的安全防护挑战&#xff0c;需寻找一个可靠、全面的安全解决方案。在此情况下&a…

指标完成情况对比查询sql

指标完成情况对比查询sql 1. 需求 2. SQL select--部门dept.name as bm,--年度指标任务-新签&#xff08;万元&#xff09;ndzbwh.nxqndzbrw as nxqndzbrw,--年度指标任务-收入&#xff08;万元&#xff09;ndzbwh.nsrndzbrw as nsrndzbrw,--年度指标任务-回款&#xff08;万…

buuctf-misc-27.面具下的flag

27.面具下的flag 题目&#xff1a;binwalk分离后&#xff0c;解压vmdk文件,对其中的字符进行翻译 将其放到kali中进行binwalk,可以看到有有隐藏的压缩包文件&#xff0c;我们提取一下 文件放到了主目录下&#xff0c;我们使用对应命令发现有zip文件&#xff0c;然后再使用对应…

Linux POSIX消息队列遇到的问题和使用方法

目录 一、开发环境及消息队列介绍二、问题描述三、解决办法四、测试代码 一、开发环境及消息队列介绍 开发板&#xff1a;nuc980 1.ARM Linux中消息队列的原理   在ARM Linux中&#xff0c;消息队列是通过POSIX&#xff08;Portable Operating System Interface&#xff09…