打开远程图像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
可惜还是同样的错误。(顺便说一句我已经添加了需要 '开URI' 内我的邮件的方法,远程文件开幕前的权利,不知道这是正确的) – Maxence
您是否尝试过使用'打开(URI.parse(profile_pic_url))。read'?和'require'open-uri''通常放在文件的顶部。 – Cyzanfar
现在我得到'没有将URI :: Generic隐式转换为String'也许是因为我试图解析图像? (似乎URI被考虑在内,但由于错误似乎与URI有关) – Maxence