如何在不触及硬盘的情况下创建文件?

时间:2012-10-02 17:59:12

标签: ruby-on-rails ruby

我正在尝试创建可以存储在外部服务器上的PDF。

我这样做:

    File.new("temp.pdf", "w").close
    File.open("temp.pdf", "wb") do |f|
        f.write(bytes)
    end
    File.open("temp.pdf", "r") do |f|
        # upload `f` to server
    end
    File.delete("temp.pdf")

然后将它们上传到服务器。

在我的本地计算机上运行正常,但是,我最近尝试在另一台计算机上运行,​​并且在日志中出现了权限错误。

有办法:

  1. 将字节写入文件。
  2. 切勿触摸硬盘。

2 个答案:

答案 0 :(得分:4)

为什么不直接将字节上传到服务器?

您可能需要比正常情况稍低一些,但请查看UploadIO宝石的multipart-post类。

答案 1 :(得分:0)

我意识到我必须写入文件并删除文件,因为UploadIO接收一个打开的文件 所以我创建了一个新文件,将内容写入其中,将其作为File.open传递给UploadIO,然后在发送后删除该文件。