【linux 上批量下载amazon s3数据】
linux 上批量下载amazon s3数据
- linux 上批量下载amazon s3数据
linux 上批量下载amazon s3数据
最近导师喊我下载amazon s3上的数据传到服务器上,没用过这玩意,网上那些批量下载的方法又看不懂,就自己用python和shell写了个小的批量下载的脚本
在运行之前要确认环境中有python3,然后在运行路劲底下放个conf.txt配置文件已经用pip install awscli下载所需要的awscli包,
conf.txt内容如下 在什么路劲下运行conf.txt就放到那个路劲底下
第一行为协议,第二行为Access Key,第三行为Secret,第四行为远程路径
s3.cn-northwest-1.amazonaws.com.cn
AKIA6VFASDFGREWEGSZAB25X
AL1pZubEyiQW123FDQ9rHQWEqGLvFMOUFSDFE2
partrsonbaio-release/P132531231/
python脚本aws_download内容如下
#!/home/anaconda3/bin/python ###你自己的python解释器路劲
import os
import subprocessconfigfname = os.getcwd() + '/' + "conf.txt"
conf = open(configfname)
content = conf.readlines()
region = content[0].split('.')[1]
key = content[1].strip()
secret = content[2].strip()
remote_path = content[3].strip()
remote_path = 's3://' + remote_path
aws_path = "aws"def for_conf():script_path = "/".join(__file__.split('/')[:-1])os.system(f'sh {script_path}/aws_configure.sh {key} {secret} {region}')def download(path):p = subprocess.Popen(f'{aws_path} s3 ls {path}', shell=True, stdout=subprocess.PIPE)out,err = p.communicate()for line in out.splitlines():line = line.decode()parts = line.strip().split()if parts[-2].isdecimal():remote_f = path + parts[-1]local_path = os.getcwd() + '/' + path.split(remote_path)[1]os.system(f"{aws_path} s3 cp {remote_f} {local_path}")else:temp_path = path + parts[-1]local_path = temp_path.split(remote_path)[1]os.system(f'mkdir -p {local_path}')download(temp_path)def main():download(remote_path)if __name__ == '__main__':for_conf()main()
shell脚本aws_configure.sh内容如下
key=$1
secret=$2
region=$3/usr/bin/expect <<-EOF
spawn aws configureexpect "AWS Access Key ID *"
send "$key\r"
expect "AWS Secret Access Key*"
send "$secret\r"
expect "Default region name*"
send "$region\r"
expect "Default output forma*:"
send "\r"
expect eof
EOF
将python脚本aws_download以及shell脚本aws_configure.sh放在同一路劲下(例如我放在了/home/users/a/software/aws_download这个路劲下)然后将用chmod +x aws_download给python脚本执行权限,再在~/.bashrc中添加一句export PATH="/home/users/a/software/aws_download:$PATH"将写好的脚本放在环境变量中
运行效果如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/f8e90342eebe4f0bb45343f10861515b.png
脚本还会自动在本地创建跟远程一样的路劲进行下载
【linux 上批量下载amazon s3数据】相关推荐
- aws cli 上传文件到s3命令_使用 AWS CLI 分段上传到 Amazon S3
如何使用 AWS CLI 将文件分段上传到 Amazon S3? 上次更新时间:2020 年 11 月 10 日 我想将一个大文件作为多个部分或使用分段上传复制到 Amazon Simple Stor ...
- ncbi-genome-download在NCBI上批量下载基因组
ncbi-genome-download在NCBI上批量下载基因组 1.简介 2. 安装 3. 使用 1.简介 ncbi-genome-download是一个可以直接从NCBI上批量下载序列的软件,数 ...
- python读取哨兵卫星数据_科学网—【Python】批量下载Sentinel-2卫星数据 - 江佳乐的博文...
简介:本文介绍了一种基于Python批量下载Sentinel-2卫星数据的方法.通过该方法,用户可自定义感兴趣研究区(ROI).限定时间范围.选择产品类别.进行云量筛选,实现自动化批量下载Sentin ...
- Python批量下载CHIRPS气象数据并完成解压裁剪等
文章目录 前言 一.CHIRPS是什么? 二.实现步骤 1.下载数据 2.解压缩 3.批量裁剪 三.完整代码如下 四.代码结果 前言 最近需要下载气象数据--CHIRPS,借助之前学的批量下载哨兵 ...
- 通过js批量下载地图TopoJson数据
导言 TopoJson 是 GeoJson 按拓扑学编码后的扩展形式.使用点.弧(有向线)来表示图形. TopoJson结构如下 下面通过js脚本来批量下载地图TopoJson数据文件 1.获取地图t ...
- SecureCRT、Xmanager对Linux上传下载文件或文件夹
(1).SecureCRT SecureCRT对Linux上传下载文件或文件夹拥有一个专门的软件SecureFXPortable.对于它来说只有两个的难题,一个是版本问题,尽量去官网下载最近版本:另一 ...
- 使用MATLAB中Mget函数批量下载FTP网站数据
使用MATLAB中Mget函数批量下载FTP网站数据 例如下载igs的GNSS数据 一.使用excel批量编写代码内容 二.粘贴至MATLAB脚本中并运行 例如下载igs的GNSS数据 一.使用exc ...
- linux上传下载工具lrzsz
linux上传下载工具lrzsz ubuntu安装 sudo apt-get install lrzsz centos安装 yum -y install lrzsz 下载 操作 命令 下载文件 sz ...
- 利用Python在NASA Earthdata Search 上批量下载MODIS数据
1.下载网址:https://search.earthdata.nasa.gov 2.第一步:注册账号,右上角Earthdata Login,如实注册,身份可以选择教育.用途可以选择科研团队,记得添加 ...
最新文章
- Mysql sql优化(一)
- 快速排序 c++_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)
- WINDOWS XP 开始→运行→命令 集锦
- python处理excel文件的模块_python处理Excel文件的几个模块
- 尝试在视图不在窗口层次结构中的UIViewController上呈现UIViewController
- linux sock结构体,struct socket结构体详解
- [BZOJ 4563]放棋子
- 【渝粤题库】广东开放大学 会展项目实践 形成性考核
- java dispatchevent_java事件处理机制
- eclipse+spket+Extjs4.2.1开发环境搭建
- 计算机行业的pest分析,2014-2018年中国电脑外设行业市场发展现状及未来趋势调研报告...
- Visual C++开发工具与调试技巧整理
- Python3内置模块2-logging(转)
- c语言标准库详解(一):stdio.h之文件操作
- excel 双纵坐标 图文介绍excel 2007如何画双纵坐标图
- 研究生学习生活日记——第二次组会
- Windows环境下使用UHD PythonAPI开发USRP X310
- Nand Flash控制器
- 软考中级都考什么?难度大吗?
- java毕业设计智能交通管控系统Mybatis+系统+数据库+调试部署
热门文章
- CRC32校验算法(查表法)
- [C++] 左值和右值
- 初学者之路——————离散卷积
- ubuntu修改时区,tzselect报错: /usr/share/zoneinfo/iso3166.tab: No such file or directory
- EtherCAT使用与解析-关于PDO映射
- 扎拉赞恩 服务器 微信群,魔兽世界怀旧服回音群岛扎拉赞恩任务怎么做?WOW怀旧服扎拉赞恩在哪里?...
- 操作系统学习笔记——北京大学陈向群老师课后及习题答案(3)
- 暴力破解与验证码安全——BS架构暴力猜解
- 【python】你的连连看为啥子如此之快,原来你开全自动了呀!!
- i5双线程_i5双核四线程_i5双核四线程评测