打开远程图像S3在控制器(ApplicationMailer) - 没有这样的文件或目录@ rb_sysopen

问题描述:

我试图打开通过回形针上传到S3档案图片,以便提交其作为在线电子邮件附件。打开远程图像S3在控制器(ApplicationMailer) - 没有这样的文件或目录@ rb_sysopen

虽然我得到错误:

No such file or directory @ rb_sysopen 

这里是我的代码位的问题:

attachments.inline['profilepic'] = File.read(profilepic) 

profilepic是一个绝对URL(从//mybucket.S3-eu-west。 ....)到S3中的图像(当粘贴到导航栏上时,它只是完美地显示图像)

我试过以下使用open-uri,但是同样的错误

require 'open-uri' 
attachments.inline['profilepic'] = open(profilepic) 

像你这样,你需要首先:

require 'open-uri' 

然后执行:

uri = URI("http:"+profilepic.to_s) 
attachments["profilepic"] = open(uri).read 
+0

可惜还是同样的错误。(顺便说一句我已经添加了需要 '开URI' 内我的邮件的方法,远程文件开幕前的权利,不知道这是正确的) – Maxence

+0

您是否尝试过使用'打开(URI.parse(profile_pic_url))。read'?和'require'open-uri''通常放在文件的顶部。 – Cyzanfar

+0

现在我得到'没有将URI :: Generic隐式转换为String'也许是因为我试图解析图像? (似乎URI被考虑在内,但由于错误似乎与URI有关) – Maxence