我现在正在使用 Heroku 服务器和 AWS 开发 Ruby on Rails 应用程序。 在应用程序中,我必须读取文本文件。我在本地进行了测试,现在将此文件放入 AWS 中。
当我将文件地址放入 AWS 时,会弹出以下错误消息。
Errno::ENOENT (No such file or directory @ rb_sysopen - https://s3-us-west-2.amazonaws.com/ringleplus2015/my_file.txt):
当我在 Chrome 上复制并粘贴此地址时,我可以毫无问题地下载文件。
#file = File.open("./my_file.txt","r")
file = File.open("https://s3-us-west-2.amazonaws.com/testbuckethoho/my_file.txt","r")
我允许任何人阅读此内容。
此外,在 html.rb 文件中,我还放置了用户可以从中下载 pdf 文件的链接。 "target="_blank"class="btn btn-lg btn-default">案例下载
但是当我点击它时,它显示“此网页不可用。”我仔细查看地址,“https”和“//”之间的“:”消失了
https//s3-us-west-2.amazonaws.com/testbuckethoho/What+Consumers+Want+from+Their+Displays+%7C+The+Applied+Materials+Blog.pdf
当我在那里包含“:”时,它就起作用了。但如果我在 html 文件中包含“:”,则会导致此错误。
No route matches [GET] "/home/:/https:/s3-us-west-2.amazonaws.com/testbuckethoho/What+Consumers+Want+from+Their+Displays+%7C+The+Applied+Materials+Blog.pdf"
有人能帮我找出导致此问题的原因并解决它吗? :)
最佳答案
Ruby 正在查找名为 https://s3-us-west-2.amazonaws.com/testbuckethoho/my_file.txt
的本地文件。它不知道向远程主机发出请求。
有多种方法可以解决这个问题,内置的方法是 open-uri .
关于ruby-on-rails - 从 Amazon 服务器读取文件,Ruby on Rails,没有匹配路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30410951/