【问题标题】:Aws S3 cp will not run through r system function (windows) -- Unable to locate credentialsAws S3 cp 将无法通过 r 系统功能(Windows)运行——无法找到凭据
【发布时间】:2014-10-23 03:45:07
【问题描述】:

我有一个如下所示的批处理文件(称之为“awsCopy.bat”):

"C:\Program Files\Amazon\AWSCLI\Aws.exe" s3 cp "s3://xxxs3bucketxxx/file.csv" "\\networkDrive\folder\file.csv"

当我运行这个批处理文件时,它运行良好,从 s3 复制我的文件并将其下载到我指定的目录。 (我已经运行 AWS configure 以将我的密钥存储在 .../user/.aws/config 文件中)。

当我尝试使用 system("awsCopy.bat") 从 R 运行批处理文件时,命令以状态 1 完成,不复制文件,我收到以下消息:

无法找到凭据 已完成 1 个部分,剩余 ... 文件

我尝试在批处理文件中添加 set 命令无济于事:

set aws_access_key_id = xxxxxxx
set aws_secret_access_key = yyyyyy

还有其他人遇到过(并解决过)这个问题吗? (我正在运行 Windows 7)谢谢。

【问题讨论】:

    标签: windows r batch-file amazon-web-services amazon-s3


    【解决方案1】:

    根据 Windows 上的系统文档(关于一种我不知道它是什么的语言),系统不会调用 shell(与 Unix 不同)。它说使用 shell 命令。

    或者在其他语言中,我们可以像这样使用您的系统调用(但文档说使用 System2 调用更容易)

    cmd /c "c:\somedfolder\batch.bat
    

    【讨论】:

    • 感谢您的回复。我终于弄清楚了这个问题。我正在从网络驱动器执行此脚本,但我的凭据仅在我的本地计算机上设置。 (我猜设置键只是在本地重新设置它们。)在本地保存“awsCopy.bat”就可以了。在批处理文件路径上运行 system、shell 和 system2 都可以。
    【解决方案2】:

    我终于弄清楚了这个问题。我正在从网络驱动器执行此脚本,但我的凭据仅在我的本地计算机上设置。 (我猜设置键只是在本地重新设置它们。)在本地保存“awsCopy.bat”就可以了。在批处理文件路径上运行 system、shell 和 system2 都可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 2021-06-17
      • 2019-06-01
      • 2021-09-29
      • 2022-12-16
      相关资源
      最近更新 更多