Pau*_*rth 5 ruby amazon-s3 paperclip
使用Paperclip,我想从这样的URL中获取图像:
require 'open-uri'
user.photo = open(url)
Run Code Online (Sandbox Code Playgroud)
问题是我最后会找到像'open-uri20110915-4852-1o7k5uw'这样的文件名.有什么办法可以在user.photo上更改文件名吗?
作为一个额外的转折,Paperclip将我的文件存储在S3上,所以如果我可以在初始分配中设置我想要的文件名,那就更好了,所以图像上传到正确的S3密钥.像这样的东西:
user.photo = open(url), :filename => URI.parse(url).path
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式将文件名写回实例:
photo.instance_write(:file_name, new_file_name)
Run Code Online (Sandbox Code Playgroud)
因此,如果您的源网址如下:
http://example.com/foo.jpg
Run Code Online (Sandbox Code Playgroud)
您可以先从URL解析名称(获取foo.jpg
),然后使用上述instance_write
方法将其写回实例.
io = open(url)
def io.original_filename; base_uri.path.split('/').last; end
Run Code Online (Sandbox Code Playgroud)
这会将文件名设置为url中的文件名.
归档时间: |
|
查看次数: |
2266 次 |
最近记录: |