AWS CLI使用s3
时间:2022-05-04
本文章向大家介绍AWS CLI使用s3,主要内容包括1.安装CLI、2.配置、3.脚本配置、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
aws CLI是什么东西,暂且先不去了解,目前的需求是s3.
我在Jenkins上创建一个bucket,然后申请access_key,然后就可以使用s3来存储数据了。也就是说,s3就是一个网盘。
1.安装CLI
文档:http://docs.aws.amazon.com/cli/latest/userguide/installing.html
$ 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默认寻找总的环境变量,这就导致自己设置的环境变量没有读取
- 所以需要在脚本的开头声明环境变量文件: . /etc/profile . ~/.bash_profile
#!/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
- 揭秘前端字符的戏精之路
- 跨语言嵌入模型的调查
- React Native如何消除启动时白屏
- 如何在Python中将TimeDistributed层用于Long Short-Term Memory Networks
- react native 调用原生UI组件
- Android侧滑删除另一种实现,SwipeListView补充
- React Native调用原生组件
- React Native调用原生UI组件
- js不好学并不是因为它难,而是因为它容易混淆
- Gradle详解
- React Native网络请求fetch简单封装
- Promise机制
- React Native 自定义控件之验证码和Toast
- React 高阶组件HOC
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法