新手AWS S3下载数据集必学入门教程
简介
之前我写过一期使用asw来挂下载SpaceNet遥感数据集的教程,觉得写的还不是很详细,有些遗漏的地方,这里进
行再次的补充,让新手朋友们能看的更加清晰,因为会用到亚马逊S3账号,然后申请起来又特别的费事,可能很多新手
就不会了,那么我这里梳理一下从开始注册到配置,再到最后如何使用CLI下载,指引新手一下,因为很多地方都会用到
S3来下载,并不是只能挂SpaceNet。
注册
我们先访问到亚马逊的官网,地址我在下面贴出来了
进入官网,点击右上方的搜索框图标 >> 在搜索框中输入关键字 “S3”回车进行搜索
搜索出来的结果第一个就是,如图
点击界面上的开始使用 Amazon S3,进行账号的注册(普通账号默认没有登录S3服务,需开启必须登录绑卡)
填写需要注册的邮箱,跟着提示按流程注册即可,这里就不赘述了
当我们注册完成,使用AWS登录S3服务之后是会弹出来让你添加信用卡的
如果没弹出来请点击右上角用户的地方 >> Billing Dashboard >> 付款首选项 >> 添加付款方式,把你的信用卡
填进去就可以了,AWS是已经支持国内信用卡,无需国际信用卡,添加后使用CNY人民币结账即可
我这里演示用的是使用的是美元结账,需要注意的是,这里必须成功的否则后面流程就不用看了
SpaceNet数据存放在S3服务上,所以账号必去登录S3服务才能下载数据,
创建用户
绑卡成功之后开始创建用户,点击右上角用户名处 >> Security credentials
左侧工具栏 >> 访问管理 >> 用户,进行点击
点击右边的 >> 添加用户
输入一个用户名,这里自定义,随意输入
设置权限,这里选择直接附加策略
在搜索框当中输入关键字“s3”,回车进行搜索,显示出来的相关s3的策略,全部选中,下一步即可
创建用户完成后,进去用户当中 >> 安全凭证
找到访问秘钥这一项 >> 创建访问秘钥 >> 命令行界面(CLI) >> 勾选下方同意创建,点击下一步完成
这个就是我们的访问秘钥,请保存好。后面配置CLI会用的上,直接下载CSV文件即可存在电脑上
下载AWS CLI安装
AWS CLI 支持windows、linux、Mac三平台使用,下方是CLI的下载页面,这里举例windows和linux平台的
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
windows cli
到下方我贴的地址找到对应的版本安装
#Windows(64位)的AWS CLI MSI安装程序
https://awscli.amazonaws.com/AWSCLIV2.msi
默认next下一步直接安装到完成
安装完毕我们去CMD进行测试,输入aws help,显示如下图,则环境安装成功
本地配置秘钥
管理员方式运行CMD并输入
cd /d C:\Program Files\Amazon\AWSCLIV2\
如果有多个账户可以设置一个默认用户,使用以下命令(没有则忽略)
set AWS_DEFAULT_PROFILE=s3
配置证书
aws configure
秘钥ID和访问秘钥在你下载的CSV文件当中都有
AWS Access Key ID [None]: 密钥 ID
AWS Secret Access Key [None]: 私有访问密钥
Default region name [None]: us-west-2
Default output format [None]: json
linux cli
linux系统的更为简洁一些,三行命令敲完就行了
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
配置秘钥,和windows一样
aws configure
AWS S3 CLI 下载
这里需要提一点挂某些网站的S3是需要使用科学上网工具来挂下载,否则即使配置成功也挂不动
自己挂不动的,或者嫌过程太繁琐的,可以联系站长来挂S3数据
这里我以SpaceNet遥感数据集的网站作为示例,演示一下S3的数据如何下载,下方是网站
https://spacenetchallenge.github.io/
查看
查看数据列表
aws s3 ls s3://spacenet-dataset/ --request-payer requester
下载数据——以AOIs为例
先获取列表
aws s3 ls s3://spacenet-dataset/AOIs/ --request-payer requester
下载s3
我下载AOI_4shanghai的,先获取
aws s3 ls s3://spacenet-dataset/AOIs/AOI_4_Shanghai/ --request-payer requester
下载数据示例
aws s3 cp s3://spacenet-dataset/AOIs/AOI_4_Shanghai . --recursive
aws s3 cp s3://arn:aws:s3:us-east-1:604877620213:accesspoint/dfdc-data-ap-1/test/metadata.json . --request-payer --region=us-east-1
aws s3 sync s3://livecell-dataset/ .
比如下载到D盘
aws s3 cp s3://spacenet-dataset/AOIs/AOI_4_Shanghai d:\
同步s3示例
aws s3 sync --no-sign-request s3://openneuro.org/ds002870 ds002870-download/
为避免数据下载中断建议数据一个一个的下载,例如定位到AOI_4_Shanghai文件夹
该命令会将AOI_4_Shanghai文件夹下所有数据下载到当前(不能自定下载目录)
注意不包括AOI_4_Shanghai自身(注意路径结尾的 “.” 有空格且不能省略,否则下载失败)