文件从亚马逊服务器读取,ruby在轨道上,没有匹配路由

我现在正在使用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的本地文件。 它不知道向远程主机发出请求。

有很多方法可以解决这个问题,内置的方法是开放式的 。