2017-02-27 49 views
1

從Windows命令行發出AWS-CLI命令"aws s3 ls"時,它成功完成。當我嘗試使用R和Eclipse的shell(paste0("aws ", "s3 ", "ls"))時,它成功完成。使用RStudio找不到AWS-CLI憑證,但在Windows CLI下正常工作

然而,使用相同的憑據,從Windows命令行另一臺機器上,"aws s3 ls"成功完成,但RStudio shell(paste0("aws ", "s3 ", "ls"))我得到:

"fatal error: Unable to locate credentials"

如果我從RStudio運行shell(paste0("aws ", "s3 ", "ls ", "--debug"))我得到:

2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: env 2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role 2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file 2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: config-file 2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: ec2-credentials-file 2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: boto-config 2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: container-role 2017-02-27 15:07:10,516 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: iam-role 2017-02-27 15:07:10,520 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): xxx.xxx.xxx.xxx 2017-02-27 15:07:10,523 - MainThread - botocore.utils - DEBUG - Caught exception while trying to retrieve credentials: ('Connection aborted.', error(10051, 'A socket operation was attempted to an unreachable network')) Traceback (most recent call last): File "botocore\utils.pyc", line 159, in _get_request File "botocore\vendored\requests\api.pyc", line 69, in get File "botocore\vendored\requests\api.pyc", line 50, in request File "botocore\vendored\requests\sessions.pyc", line 465, in request File "botocore\vendored\requests\sessions.pyc", line 573, in send File "botocore\vendored\requests\adapters.pyc", line 415, in send

對於Windows命令行的成功案例,它找到如下所示的憑據:

2017-02-27 15:07:03,267 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: env 2017-02-27 15:07:03,267 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role 2017-02-27 15:07:03,267 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file 2017-02-27 15:07:03,267 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials

所以,我想弄清楚爲什麼AWS CLI無法使用RStudio找到憑據,但它可以在Windows CLI下正常工作。

更新:我已經在兩臺機器上安裝了Eclipse,它工作正常。但是,它仍然不適用於RStudio,因此它必須是IDE相關的問題。有任何想法嗎?

+1

你可以嘗試,而不是使用[** ** aws.s3(https://cran.r-project.org /package=aws.s3)軟件包,它爲您提供了一個到S3的本地R接口。 – Thomas

+0

謝謝你的建議。不幸的是,我不再在這個項目上工作,也無法嘗試。看起來像一個不錯的選擇。 – Jeff

回答

1

我能夠通過定義AWS憑據RStudio解決這個問題:

Sys.setenv ("AWS_ACCESS_KEY_ID" = "YourKEY_ID", 
      "AWS_SECRET_ACCESS_KEY" = "YOURSECRETACCESSKEY", 
      "AWS_DEFAULT_REGION" = "eu-west-1") 
相關問題