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 条评论
登录 后参与评论

相关文章

来自专栏Ken的杂谈

【系统设置】CentOS 修改机器名

623
来自专栏苍云横渡学习笔记

【Docker学习笔记(一)】简介、核心概念、安装以及常用命令

Docker 是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中

491
来自专栏搜云库

可能是最详细的部署:Docker Registry企业级私有镜像仓库Harbor管理WEB UI

上一篇文章搭建了一个具有基础功能,权限认证、TLS 的私有仓库,但是Docker Registry 作为镜像仓库,连管理界面都没有,甚至连一些运维必备的功能都是...

4038
来自专栏bdcn

CoreOS裸机iso安装和相关配置 原

裸机通过iso安装CoreOS,个人趟了很多坑,以下就是完整的从零开始部署和配置的过程,希望对大家有用。

712
来自专栏从零开始的linux

tomcat redis nginx session共享

使用Nginx作为Tomcat的负载平衡器,Tomcat的会话Session数据存储在Redis,能够实现零宕机的7x24效果。因为将会话存储在Redis中,因...

3553
来自专栏http://www.cnblogs.com

基于CentOS安装FTP服务器

操作系统环境: CentOS Linux release 7.4.1708 (Core) 使用yum安装ftp服务: yum install -y vsftpd...

4659
来自专栏菩提树下的杨过

MRTG FOR WINDOWS 安装指南

MRTG(Multi Router Traffic Grapher),通常讲是一个监控网络链路流量负载的开源软件,它可以从所有运行SNMP协议的设备上(包括服务...

19110
来自专栏计算机视觉与深度学习基础

honeyd蜜罐配置和web监听脚本

Honeyd的安装和配置        Honeyd软件依赖于以下几个库及arpd工具:       (1)Libevent:是一个非同步事件通知的函数库。通过...

2135
来自专栏pangguoming

Windows下安装并设置Redis

Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定。详情请参考: http://redis.io/down...

2518
来自专栏我的博客

Python上传文件到FTP服务器

代码在python2.7下测试通过!写在最前面! # -*- coding: UTF-8 -*- from ftplib import FTP import o...

3326

扫描关注云+社区