获取 Errno::ENOENT:没有这样的文件或目录 @rb_sysopen 尝试在 Roo gem(Ruby on rails)中打开远程文件 url 时

Nat*_*a B 2 ruby rubygems ruby-on-rails roo-gem

我在尝试打开文件以使用roo gem导入数据时在 AWS s3 存储中存储了一个文件,它引发了以下错误Errno::ENOENT: No such file or directory @ rb_sysopen

def self.import(file, user_id)
        imported_file = ImportedFile.find(file)
        spreadsheet = Roo::Spreadsheet.open(open(imported_file.file_url), extension: :csv)
        spreadsheet = Roo::Spreadsheet.open(imported_file.file)
      header = spreadsheet.row(1)//raising error here
end
Run Code Online (Sandbox Code Playgroud)

我什至也试过这个

spreadsheet = Roo::Spreadsheet.open(imported_file.file_url)
Run Code Online (Sandbox Code Playgroud)

在日志中出现以下错误

Errno::ENOENT: No such file or directory @ rb_sysopen - /uploads/imported_files/7a6f0463-b3cd-48f8-a579-bc27951242fe/13c96e3e-d3f3-4ed8-8d9a-b9ea03c0cc8c.csv
Run Code Online (Sandbox Code Playgroud)

KAR*_*ván 5

要打开 URL,您应该open-uri首先需要该库:

require 'open-uri'
Run Code Online (Sandbox Code Playgroud)

看例子:

open('http://example.com/')
# throws Errno::ENOENT: No such file or directory @ rb_sysopen - http://example.com/

require 'open-uri'
open('http://example.com/')
# opens the website
Run Code Online (Sandbox Code Playgroud)