简体   繁体   English

正在获取Errno :: ENOENT:此类文件或目录@ rb_sysopen尝试在Roo gem中打开远程文件url时(Ruby on rails)

[英]Getting Errno::ENOENT: No such file or directory @ rb_sysopen When trying to open remote file url in Roo gem(Ruby on rails)

I have stored an file in AWS s3 storage when trying to open an file to import data using roo gem, It raising following error Errno::ENOENT: No such file or directory @ rb_sysopen 尝试打开文件以使用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

I even tried this also 我什至也尝试过

spreadsheet = Roo::Spreadsheet.open(imported_file.file_url)

Getting below error in log 低于日志错误

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

To open URLs you should require the open-uri library first: 要打开URL,您应该首先要求open-uri库:

require 'open-uri'

See the example: 参见示例:

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

最后,下面的代码为我工作。

spreadsheet = Roo::Spreadsheet.open(open(imported_file.file_url), extension: File.extname(imported_file.file_url).gsub('.','').to_sym) rescue nil

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 尝试获取 Errno::ENOENT (没有这样的文件或目录@rb_sysopen) - File.open('condoleads1.json') - Getting Errno::ENOENT (No such file or directory @ rb_sysopen) while trying to - File.open('condoleads1.json') Errno :: ENOENT - 没有这样的文件或目录@ rb_sysopen - Errno::ENOENT - No such file or directory @ rb_sysopen Errno::ENOENT 没有那个文件或目录@rb_sysopen - Errno::ENOENT No such file or directory @ rb_sysopen rails 4:Errno :: ENOENT(没有这样的文件或目录@ rb_sysopen - / assets / - rails 4: Errno::ENOENT (No such file or directory @ rb_sysopen - /assets/ 如何修复“Errno::ENOENT: No such file or directory @ rb_sysopen”? - How to fix “Errno::ENOENT: No such file or directory @ rb_sysopen”? Errno :: ENOENT(无此类文件或目录@ rb_sysopen-aws.yml) - Errno::ENOENT (No such file or directory @ rb_sysopen - aws.yml) Errno::ENOENT: 没有这样的文件或目录@rb_sysopen - /tmp/ - Errno::ENOENT: No such file or directory @ rb_sysopen - /tmp/ Rails的公共目录中的文件-Errno :: ENOENT(无此类文件或目录@ rb_sysopen - Files in public directory in Rails - Errno::ENOENT (No such file or directory @ rb_sysopen 从AWS S3读取CSV文件时获取“Errno :: ENOENT:没有此类文件或目录@ rb_sysopen” - Getting “Errno::ENOENT: No such file or directory @ rb_sysopen” while reading the CSV file from the AWS S3 带有 Rails API 的 Expo Image Picker 获取 Errno::ENOENT(没有这样的文件或目录 @ rb_sysopen - Expo Image Picker With Rails API gets Errno::ENOENT (No such file or directory @ rb_sysopen
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM