【问题标题】:Ruby on Rails copy S3 file with special characters (%C5) in pathRuby on Rails 复制路径中带有特殊字符 (%C5) 的 S3 文件
【发布时间】:2016-01-19 09:22:34
【问题描述】:

我的网页附件系统有问题。我使用回形针将它们存储在亚马逊 S3 上。我可以选择将附件复制到新文件。一切正常,直到标题中有波兰语特殊字符,例如:ŁĄKA.jpg。然后我得到一个错误:

Saving error: Appendix Paperclip::Errors::NotIdentifiedByImageMagickError
/Users/michal/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.5/lib/active_record/validations.rb:79:in `raise_record_invalid'
/Users/michal/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.5/lib/active_record/validations.rb:43:in `save!'

我的代码:

instance.appendixes.select {|a| a.temporary? && !a.appendix.exists?}.each do |a|
        a.appendix = S3File.new(a.s3path)
        a.process = false
        a.appendix_url = nil
        puts "CREATING NEW FILE from (temporary?) appendix: #{a.id}, path: #{a.s3path}, is_public: #{a.is_public}, determine_is_public: #{a.determine_is_public}"
        a.is_public = a.determine_is_public
        logger.debug("CREATING NEW FILE from (temporary?) appendix: #{a.id}, path: #{a.s3path}, is_public: #{a.is_public}, determine_is_public: #{a.determine_is_public}")

        a.save! # bo delayed_job
end

我在 a.save 上遇到错误!当路径类似于:appendixes/appendixes/242/original/%25C5%2581A%25CC%25A8KA.jpg,但当它是:appendixes/appendixes/243/original/laka.jpg 或其他不带波兰字母的文件名时,它就像魅力一样。有人遇到过这种问题或有解决方法的建议吗?

【问题讨论】:

    标签: ruby-on-rails ruby amazon-s3 paperclip special-characters


    【解决方案1】:

    好的,我发现了问题所在。我不得不在 a.s3path 中替换,最后一部分用原始名称 (łąka.jpg) 并且一切正常。所以当我有: S3File.new(appendixes/appendixes/243/original/łąka.jpg) 它运行良好并在 s3 服务器上找到正确的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      相关资源
      最近更新 更多