为 Travis 中的部署部分加密密钥 CI

Encrypting keys for deploy section in Travis CI

我正在尝试从 Travis CI S3 部署到 S3 存储桶:http://docs.travis-ci.com/user/deployment/s3/

使用http://docs.travis-ci.com/user/encryption-keys/

中描述的过程加密密钥

当密钥不需要转义时,一切正常,但据我所知,当它们需要转义时,有两种选择:

  1. 用引号和双反斜杠转义 "\<symbol>"
  2. 用单引号和反斜杠转义 '\<symbol>'

两者都失败了: Aws Secret Key does not match Access Key Id, Stopping Deploy

知道如何解决这个问题吗?这是一个已知错误吗?

在您的具体示例中,双引号只需要一个转义反斜杠,而单引号需要 none。这个案例有具体的注释here.

字符串的处理方式与 bash 处理字符串的方式相同。

最简单的方法是单引号并将每个字符作为文字读取(直接读取为 ascii)。或者,如果它是双引号,它将受制于 Shell Expansion 并且需要转义特殊字符。

可以在此处找到有关每个案例的清晰文档:

Single Quote GNU Man Page

Double Quote GNU Man Page