59

自从我上次更新包以来,rails 控制台(rails 服务器、rails 控制台、db:migrate 等)中的每个操作都会引发警告:

[fog][WARNING] Unable to load the 'unf' gem. Your AWS strings may not be properly encoded.

我确定我没有更改 application.rb 文件中的 AWS 字符串中的任何内容:

    # Amazon S3 credentials
ENV["AWS_ACCESS_KEY_ID"] = "AWS_ACCESS_KEY_ID"
ENV["AWS_SECRET_ACCESS_KEY"] = "AWS_SECRET_ACCESS_KEY"
ENV["AWS_S3_BUCKET"] = "my-bucket"

我的 gemfile 中没有这个“unf” gem。我应该添加它吗?

4

3 回答 3

74

是的,这只是发生在几天前。您可以从拉取请求和提交中看到 unf 依赖项是可选的。

https://github.com/fog/fog/pull/2320/commits

当我用雾更新我当前的包时,我收到了相同的警告,并添加

gem 'unf' 

确实删除了没有任何问题的警告。

于 2013-10-29T18:38:48.457 回答
13

如果您没有任何名称中没有 ASCII 字符的 S3 存储桶/对象,我认为您可以放心地忽略警告。正如@trh 指出的那样,我们也可能会做一些事情来降低噪音,但现在你可以忽略或添加 unf 来让它安静下来。

于 2013-10-30T00:30:57.237 回答
7

当我看到这个错误时,我显然已经安装了fog-1.18.0。(重新启动我不久前安装的 aws vagrant 项目)我天真的尝试修复是从升级开始

  gem install fog

将某些东西升级到fog-1.21.0。正如它警告的那样,“这可能需要一段时间......”......这并没有帮助。

从这里投票的解决方案中并不清楚在哪里添加“gem 'unf'”,它似乎是 lib/fog/aws.rb 但当我查看时它已经在那里了。

  gem install unf

似乎在某处添加了它,但问题并没有消失。

我升级了 vagrant 本身(1.4.3 到 1.5.1),但这并没有解决它。

最终,修复是

  vagrant plugin install unf

正如我在https://github.com/mitchellh/vagrant/issues/2507的一个线程中发现的那样

我不确定我之前的任何摸索尝试是否也是必要的,所以我还是在这里记下了它们。

于 2014-03-22T02:08:02.037 回答