天天看點

AWS CLI使用s3

文檔:http://docs.aws.amazon.com/cli/latest/userguide/installing.html

1

2

3

<code>$ curl </code><code>"https://s3.amazonaws.com/aws-cli/awscli-bundle.zip"</code> <code>-o </code><code>"awscli-bundle.zip"</code>

<code>$ unzip awscli-bundle.zip</code>

<code>$ </code><code>sudo</code> <code>.</code><code>/awscli-bundle/install</code> <code>-i </code><code>/usr/local/aws</code> <code>-b </code><code>/usr/local/bin/aws</code>

  

<a></a>

配置很簡單,提供access_key 和secret_access_key以及region就可以了。

aws configure

由于給我的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預設尋找總的環境變量,這就導緻自己設定的環境變量沒有讀取

是以需要在腳本的開頭聲明環境變量檔案:

<code>. </code><code>/etc/profile</code>

<code>. ~/.bash_profile</code>

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

<code>#!/bin/bash</code>

<code># update aws configure</code>

<code># configure environment variables for the default user</code>

<code>#  ~/.aws/credentials</code>

<code># [default]</code>

<code>#   aws_access_key_id = AKIAJB2HUQ2N2SVSWDDA</code>

<code>#   aws_secret_access_key = DlzsCdXrCfeQ+dsAd69U1liDQxzRK6cMpY+3Cn64</code>

<code>#  ~/.aws/config</code>

<code># output = json</code>

<code># region = us-west-2</code>

<code>#get client_token</code>

<code> </code><code>client_token_json=`curl -XPOST https:</code><code>//store</code><code>.</code><code>test</code><code>.expedia.com</code><code>/v1/auth/app-id/login</code> <code>-d </code><code>'{"app_id":"d8xxxxxxxx789871","user_id":"710xxxxxxxxxb65-b8xxxxxaf1b01"}'</code> <code>--silent  -k`</code>

<code> </code><code>client_token=$(</code><code>echo</code> <code>$client_token_json | jq .auth.client_token | </code><code>cut</code> <code>-d </code><code>"\""</code> <code>-f 2)</code>

<code> </code><code>aws_auth=$(curl -H </code><code>"X-Vault-Token:$client_token"</code> <code>-X GET   https:</code><code>//store</code><code>.</code><code>test</code><code>.expedia.com</code><code>/v1/test/creds/epc-content-mongodb</code> <code>--silent  -k)</code>

<code># set environment, only effec in this shell</code>

<code> </code><code>access=$(</code><code>echo</code> <code>$aws_auth | jq .data.access_key | </code><code>cut</code> <code>-d </code><code>"\""</code> <code>-f 2)</code>

<code> </code><code>secret=$(</code><code>echo</code> <code>$aws_auth | jq .data.secret_key | </code><code>cut</code> <code>-d </code><code>"\""</code> <code>-f 2)</code>

<code> </code><code>export</code> <code>AWS_ACCESS_KEY_ID=$access</code>

<code> </code><code>export</code> <code>AWS_SECRET_ACCESS_KEY=$secret</code>

<code> </code><code>env</code> <code>| </code><code>grep</code> <code>AWS</code>

<code>echo</code> <code>"[default]"</code> <code>&gt; ~/.aws</code><code>/credentials</code>

<code>echo</code> <code>"aws_access_key_id="</code><code>$access&gt;&gt;~/.aws</code><code>/credentials</code>

<code>echo</code> <code>"aws_secret_access_key="</code><code>$secret&gt;&gt;~/.aws</code><code>/credentials</code>

<code>echo</code> <code>"[default]"</code><code>&gt; ~/.aws</code><code>/config</code>

<code>echo</code> <code>"output = json"</code><code>&gt;&gt;~/.aws</code><code>/config</code>

<code>echo</code> <code>"region = us-west-2"</code><code>&gt;&gt;~/.aws</code><code>/config</code>

<code> </code><code>echo</code> <code>"aws key has updated!"</code>

<code># wait for effective</code>

<code>#sleep 10s</code>

<code>#test aws s3</code>

<code>#aws s3 ls s3://epc-content-mongodb-export --output json --region us-west-2</code>

 本文轉自Ryan.Miao部落格園部落格,原文連結:http://www.cnblogs.com/woshimrf/p/5503406.html,如需轉載請自行聯系原作者