通过bash脚本非交互式配置s3cmd

时间:2016-07-27 20:46:23

标签: bash amazon-s3 configuration-files s3cmd

我正在尝试配置s3cmd。在命令行时,

s3cmd --configure 

运行向导,数据输入很简单。 现在,我想通过bash脚本运行它。我用过:

s3cmd --configure --access_key=XXXXXXX --secret_key=XXXXXX -s --no-encrypt 

并且交互式向导仍会弹出问我刚提供的参数。然后我尝试转储配置文件(.s3cfg)的内容并将其写入根文件中,希望s3cmd读取它:

s3cmd --configure --access_key=XXXXXXX --secret_key=XXXXXX -s --no-encrypt 
--dump-config 2>&1 | tee .s3cfg

但这也不起作用.. 有任何想法吗? 感谢。

2 个答案:

答案 0 :(得分:3)

--configure是一种定义所有设置的交互模式,因此只要您启用此选项,它就会带来交互式问题模式。

如果您想编写该工具的配置脚本,我认为您应该直接编辑用户主目录中的.s3cfg(对于mac / linux)或s3cmd.ini(对于Windows)并设置您要设置的值。

或者,您可以转储当前设置(正如您使用--dump-config所做的那样)进行更改并使用s3cmd --config=<new_file>保存

答案 1 :(得分:0)

至少使用版本 1.1.0-beta3 ,这对我来说效果很好:

export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...

echo -e "${AWS_ACCESS_KEY_ID?}\n${AWS_SECRET_ACCESS_KEY?}\n\n\n\n\nY\ny\n" | \
  s3cmd --configure

我建议手动执行一次以确定所需输入字符串的确切连续,然后相应地调整echo命令(你有 选项不以交互模式保存配置文件。)

希望这有助于某人!