AWS CLI使用s3
aws CLI是什么东西,暂且先不去了解,目前的需求是s3.
我在Jenkins上创建一个bucket,然后申请access_key,然后就可以使用s3来存储数据了。也就是说,s3就是一个网盘。
1.安装CLI
文档:http://docs.aws.amazon.com/cli/latest/userguide/installing.html
1 2 3 | $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" $ unzip awscli-bundle.zip $ sudo . /awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws |
2.配置
配置很简单,提供access_key 和secret_access_key以及region就可以了。
aws configure
3.脚本配置
由于给我的key是1h的,因此需要每次使用的时候更新它。
脚本中使用环境变量是最好的。参考:http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-environment
然后,我明明在脚本中export了key,却总是不通过。纠结了好久之后,百度了n个帖子之后,还是Linux环境变量的问题。
- 子shell复制父shell的环境变量
- export的环境变量是当前有效并且针对当前用户的
- 脚本中aws默认寻找总的环境变量,这就导致自己设置的环境变量没有读取
- 所以需要在脚本的开头声明环境变量文件:
12
.
/etc/profile
. ~/.bash_profile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #!/bin/bash # update aws configure # configure environment variables for the default user # ~/.aws/credentials # [default] # aws_access_key_id = AKIAJB2HUQ2N2SVSWDDA # aws_secret_access_key = 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 # ~/.aws/config # [default] # output = json # region = us-west-2 . /etc/profile . ~/.bash_profile #get client_token client_token_json=`curl -XPOST https: //store . test .expedia.com /v1/auth/app-id/login -d '{"app_id":"d8xxxxxxxx789871","user_id":"710xxxxxxxxxb65-b8xxxxxaf1b01"}' --silent -k` client_token=$( echo $client_token_json | jq .auth.client_token | cut -d "\"" -f 2) aws_auth=$(curl -H "X-Vault-Token:$client_token" -X GET https: //store . test .expedia.com /v1/test/creds/epc-content-mongodb --silent -k) # set environment, only effec in this shell access=$( echo $aws_auth | jq .data.access_key | cut -d "\"" -f 2) secret=$( echo $aws_auth | jq .data.secret_key | cut -d "\"" -f 2) export AWS_ACCESS_KEY_ID=$access export AWS_SECRET_ACCESS_KEY=$secret env | grep AWS echo "[default]" > ~/.aws /credentials echo "aws_access_key_id=" $access>>~/.aws /credentials echo "aws_secret_access_key=" $secret>>~/.aws /credentials echo "[default]" > ~/.aws /config echo "output = json" >>~/.aws /config echo "region = us-west-2" >>~/.aws /config echo "aws key has updated!" # wait for effective #sleep 10s #test aws s3 #aws s3 ls s3://epc-content-mongodb-export --output json --region us-west-2 |
关注我的公众号

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)