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数据】相关推荐

  1. aws cli 上传文件到s3命令_使用 AWS CLI 分段上传到 Amazon S3

    如何使用 AWS CLI 将文件分段上传到 Amazon S3? 上次更新时间:2020 年 11 月 10 日 我想将一个大文件作为多个部分或使用分段上传复制到 Amazon Simple Stor ...

  2. ncbi-genome-download在NCBI上批量下载基因组

    ncbi-genome-download在NCBI上批量下载基因组 1.简介 2. 安装 3. 使用 1.简介 ncbi-genome-download是一个可以直接从NCBI上批量下载序列的软件,数 ...

  3. python读取哨兵卫星数据_科学网—【Python】批量下载Sentinel-2卫星数据 - 江佳乐的博文...

    简介:本文介绍了一种基于Python批量下载Sentinel-2卫星数据的方法.通过该方法,用户可自定义感兴趣研究区(ROI).限定时间范围.选择产品类别.进行云量筛选,实现自动化批量下载Sentin ...

  4. Python批量下载CHIRPS气象数据并完成解压裁剪等

    文章目录 前言 一.CHIRPS是什么? 二.实现步骤 1.下载数据 2.解压缩 3.批量裁剪 三.完整代码如下 四.代码结果 前言   最近需要下载气象数据--CHIRPS,借助之前学的批量下载哨兵 ...

  5. 通过js批量下载地图TopoJson数据

    导言 TopoJson 是 GeoJson 按拓扑学编码后的扩展形式.使用点.弧(有向线)来表示图形. TopoJson结构如下 下面通过js脚本来批量下载地图TopoJson数据文件 1.获取地图t ...

  6. SecureCRT、Xmanager对Linux上传下载文件或文件夹

    (1).SecureCRT SecureCRT对Linux上传下载文件或文件夹拥有一个专门的软件SecureFXPortable.对于它来说只有两个的难题,一个是版本问题,尽量去官网下载最近版本:另一 ...

  7. 使用MATLAB中Mget函数批量下载FTP网站数据

    使用MATLAB中Mget函数批量下载FTP网站数据 例如下载igs的GNSS数据 一.使用excel批量编写代码内容 二.粘贴至MATLAB脚本中并运行 例如下载igs的GNSS数据 一.使用exc ...

  8. linux上传下载工具lrzsz

    linux上传下载工具lrzsz ubuntu安装 sudo apt-get install lrzsz centos安装 yum -y install lrzsz 下载 操作 命令 下载文件 sz ...

  9. 利用Python在NASA Earthdata Search 上批量下载MODIS数据

    1.下载网址:https://search.earthdata.nasa.gov 2.第一步:注册账号,右上角Earthdata Login,如实注册,身份可以选择教育.用途可以选择科研团队,记得添加 ...

最新文章

  1. Mysql sql优化(一)
  2. 快速排序 c++_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)
  3. WINDOWS XP 开始→运行→命令 集锦
  4. python处理excel文件的模块_python处理Excel文件的几个模块
  5. 尝试在视图不在窗口层次结构中的UIViewController上呈现UIViewController
  6. linux sock结构体,struct socket结构体详解
  7. [BZOJ 4563]放棋子
  8. 【渝粤题库】广东开放大学 会展项目实践 形成性考核
  9. java dispatchevent_java事件处理机制
  10. eclipse+spket+Extjs4.2.1开发环境搭建
  11. 计算机行业的pest分析,2014-2018年中国电脑外设行业市场发展现状及未来趋势调研报告...
  12. Visual C++开发工具与调试技巧整理
  13. Python3内置模块2-logging(转)
  14. c语言标准库详解(一):stdio.h之文件操作
  15. excel 双纵坐标 图文介绍excel 2007如何画双纵坐标图
  16. 研究生学习生活日记——第二次组会
  17. Windows环境下使用UHD PythonAPI开发USRP X310
  18. Nand Flash控制器
  19. 软考中级都考什么?难度大吗?
  20. java毕业设计智能交通管控系统Mybatis+系统+数据库+调试部署

热门文章

  1. CRC32校验算法(查表法)
  2. [C++] 左值和右值
  3. 初学者之路——————离散卷积
  4. ubuntu修改时区,tzselect报错: /usr/share/zoneinfo/iso3166.tab: No such file or directory
  5. EtherCAT使用与解析-关于PDO映射
  6. 扎拉赞恩 服务器 微信群,魔兽世界怀旧服回音群岛扎拉赞恩任务怎么做?WOW怀旧服扎拉赞恩在哪里?...
  7. 操作系统学习笔记——北京大学陈向群老师课后及习题答案(3)
  8. 暴力破解与验证码安全——BS架构暴力猜解
  9. 【python】你的连连看为啥子如此之快,原来你开全自动了呀!!
  10. i5双线程_i5双核四线程_i5双核四线程评测