通过批处理下载S3上的文件

最近接了一个项目,数据文件都是存放在S3上面,因此我写了一个批处理文件,从S3上把数据下载下来。下面是详细步骤,供大家参考。
第一步、准备工作。下载两个软件,AWS S3 CLI(此软件是AWS的服务器);S3 Browser(访问S3桶)。两个软件都是下一步下一步安装就行。
第二步、配置。
1、配置S3 Browser,打开软件,然后选择Accounts–>add New Accounts,然后填入你要访问的S3桶名access_key_id和secret_access_key。如图所示:
通过批处理下载S3上的文件_第1张图片
注意Account Type 要选择 Amazon S3 in China
2、配置AWS服务器。
在本地电脑的C:\Windows\System32\config\systemprofile文件路径下创建一个.aws文件夹。如图所示:
通过批处理下载S3上的文件_第2张图片在此文件夹下面创建两个文件:config.aws和credentials.aws。

config.aws文件的内容如下:

[default]
region = cn-north-1
output = text
s3 =
    max_concurrent_requests = 8
    max_queue_size = 10000
    multipart_threshold = 128MB
    multipart_chunksize = 128MB
  credentials.aws文件的内容如下:    
[default]
aws_access_key_id = 此处输入你要连接的access_key_id
aws_secret_access_key = 此处输入你要连接的secret_access_key

第三步:创建本地接收S3上文件的文件夹,记住本地文件存放的路径和S3上文件存放的路径。
第四步、前期准备工作做好了,就该写bat文件了。拿下载csv文件举例。代码如下:

@echo on
rem ---------- begin----------
rem ---------- 本地csv文件存放的路径
set LOCALDIR=C:\AWS\Outbound\DataFile\
rem ------------AWS上的csv文件存放的路径,
set S3DIR=s3://Test1-dev1/DataFile_20200515/
rem ------------本地从AWS上下载数据的日志信息存放的路径
set LOGFILE=C:\AWS\Outbound\S3Upload\S3.log
rem ---如果本地的网关和S3的网关不一致,记得使用跳板机
set HTTP_PROXY=10.132.4.110:9370
set HTTPS_PROXY=10.132.4.110:9370
rem --记录日志信息----
echo Start Download %date% %time% >> %LOGFILE%
rem --下载csv文件---
aws.exe s3 sync %S3DIR% %LOCALDIR% >> %LOGFILE%
rem ------记录日志信息
echo End Download %date% %time% >> %LOGFILE%
rem --程序结束。
exit

然后运行,测试。如果需要定时跑,可以把此bat文件放入到windows任务计划中。
至此,一个简单的从S3上下载文件的过程已全部完成。
热爱技术,靠技术吃饭

你可能感兴趣的:(linux,aws)