使用 AWS S3 存储桶的授权错误

3 javascript amazon-s3 amazon-web-services node.js cloud-storage

node s3_listbuckets.js
Error TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Authorization"]
    at ClientRequest.setHeader (_http_outgoing.js:470:3)
    at new ClientRequest (_http_client.js:219:14)
    at Object.request (https.js:305:10)
    at features.constructor.handleRequest 
...
XXX
... 
{
  message: 'Invalid character in header content ["Authorization"]',
  code: 'NetworkingError',
  region: 'XXX',
  hostname: 's3.XXX.amazonaws.com',
  retryable: true,
  time: XXX
}
Run Code Online (Sandbox Code Playgroud)

uca*_*tit 5

对于任何敢于走这条路的人。如果您收到此错误,则 99.9% 是由所提供的 AWS 凭证中的拼写错误引起的。可能是额外的,也可能只是字符串末尾的\\n空格或丢失的字符。 但如果你像我一样聪明,那么你的打字错误可能会像这样难以捉摸:

\n

我在谷歌上搜索了“regions aws code”,这样我就可以获得我们东部地区的正确代码。Google 提供了一个包含代码列表的表格,因此我将其复制并粘贴到我的凭据中,但我不断遇到此Invalid character...问题。

\n

直到我从同事那里得到凭据文件时,错误才消失。于是我逐行比较,发现字符完全没有区别……但是我错了。我从配置中获取了区域代码并将其放入Unicode 转换器中中,并发现了这一点:

\n

us\xe2\x80\x91east\xe2\x80\x911翻译为us\\u{2011}east\\u{2011}1

\n

然而

\n

us-east-1翻译为us-east-1

\n

你能猜出我从谷歌复制了哪个版本吗?...我已经吸取了教训,我希望任何在这里冒险的人都不会犯我所犯的错误。

\n