CSV.read()
требуется, чтобы файл представлял собой локальное имя файла на диске, дескриптор файла или объект ввода-вывода, но ваш файл ключа Amazon или URL-адрес не относится к таким вещам.
Скорее всего, вам потребуется загрузить содержимое в файл (или Tempfile), а затем прочитать его примерно так:
require 'open-uri' # gives us the `open()` method in this namespace
open(amazon_url) do |file|
CSV.read(file, headers: true) do |csv|
# do something with csv data here
end
end