雾和AWS警告:无法加载'unf'宝石

Arn*_*len 59 ruby ruby-on-rails amazon-web-services fog

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

[fog][WARNING] Unable to load the 'unf' gem. Your AWS strings may not be properly encoded.
Run Code Online (Sandbox Code Playgroud)

我确定我没有更改我的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"
Run Code Online (Sandbox Code Playgroud)

我的gemfile中没有这个"unf"gem.我应该加吗?

trh*_*trh 74

是的,这只是几天前发生的.您可以从pull请求中看到并且提交了unf依赖项是可选的.

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

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

gem 'unf' 
Run Code Online (Sandbox Code Playgroud)

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


gee*_*mus 13

如果您没有名称中没有ASCII字符的任何S3存储桶/对象,我认为您可以放心地忽略该警告.我们可能会做些什么来减少它的噪音,但是现在你可以忽略或添加不安静它,正如@trh指出的那样.


dma*_*man 7

当我看到这个错误时,我显然安装了雾1.18.0.(重新启动我刚刚安装的aws vagrant项目)我对修复的天真尝试是从升级开始

  gem install fog
Run Code Online (Sandbox Code Playgroud)

将某些东西升级为雾1.21.0.正如它警告的那样,"这可能需要一段时间......"......这并没有帮助.

确切地说,添加"gem'unf'"的地方在这里投票的解决方案中并不清楚,它似乎是lib/fog/aws.rb,但是当我看时,它已经存在了.

  gem install unf
Run Code Online (Sandbox Code Playgroud)

似乎把它添加到某处,但问题并没有消失.

我升级了流浪者本身(1.4.3到1.5.1)并且没有解决它.

最终,解决方案是

  vagrant plugin install unf
Run Code Online (Sandbox Code Playgroud)

正如我在https://github.com/mitchellh/vagrant/issues/2507的一个帖子中找到的那样

我不确定我之前的任何笨拙尝试是否也是必要的,所以无论如何我都在这里注意到它们.