AWS CLI使用s3

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

独家 | 通过Docker技术在macOS上部署3实例MGR环境

自从有了Docker,各种环境部署都简单从容起来,还记得我们曾经分享过:在macOS 上部署Oracle数据库环境,其实MySQL的环境部署起来同样得心应手。 ...

3548
来自专栏Hadoop实操

如何编译安装Azkaban服务

Azkaban是一套简单的任务调度服务,是Hadoop工作流引擎调度器之一,整体包括三部分Web Server、DB Server、Executor Serve...

2.1K12
来自专栏云原生架构实践

JHipster生成微服务架构的应用栈(五)- 容器编排示例

在命令行,进入appstack目录,创建一个子目录docker-compose,现在整个应用栈的目录结构是这样的:

3072
来自专栏JavaEdge

Servlet 如何工作

3628
来自专栏破晓之歌

linux下docker+sentry安装配置

注意:接下来所有命令都需要用到 Redis、 PostgreSQL、 Outbound Email中的环境变量,所有命令中需要将将三个镜像连接起来

1921
来自专栏运维小白

6.4 xz压缩工具

xz目录概要 xz 1.txt 或 xz -z 1.txt 压缩文件 xz -d 1.txt.xz 或 unxz 1.txt.xz...

2056
来自专栏散尽浮华

[原创]CI持续集成系统环境---部署Jenkins完整记录

Jenkins通过脚本任务触发,实现代码的自动化分发,是CI持续化集成环境中不可缺少的一个环节。 下面对Jenkins环境的部署做一记录。 ---------...

3126
来自专栏散尽浮华

kvm虚拟化管理平台WebVirtMgr部署-完整记录(安装ubuntu虚拟机)-(5)

之前介绍了在webvirtmgr平台下创建centos,windows server 2008的虚拟机,今天说下创建ubuntu虚拟机的过程。 (1)首先下载u...

3627
来自专栏SDNLAB

SSL及Nginx代理搭建环境的Docker仓库

使用私有仓库有许多优点:节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;提供镜像资源利用,针对于公司内部使用的镜像,推...

4356
来自专栏张善友的专栏

Web 部署工具 1.0

Web 部署工具简化了 IIS Web 服务器、Web 应用程序和网站的迁移、管理和部署。管理员可以结合使用命令行脚本和 Web 部署工具来同步 IIS 6.0...

2449

扫码关注云+社区

领取腾讯云代金券