Я пытаюсь разобрать файл PDF, хранящийся удаленно на s3. Это код, у меня есть, когда я разобрать файл на моем локальном дискеRails open_uri и amazon s3 `open_http ': 403 Forbidden (OpenURI :: HTTPError)
@doc = current_user.docs.order("created_at").last #last file uploaded by user
io = open("#{Rails.root}/public" + @doc.doc.url)
reader = PDF::Reader.new(io)
У меня нет вопроса, чтобы получить URL файла на s3, используя этот код
s3 = Aws::S3::Resource.new(
access_key_id: 'XXX',
secret_access_key: 'XXX',
region: 'eu-west-1')
bucket = s3.bucket('my_bucket')
object = bucket.object('mydoc.pdf')
puts object.public_url
Однако, когда я пытаюсь чтобы открыть этот адрес следующим образом
io = open(object.public_url)
Я также попытался с интерполяцией строк
io = open("#{object.public_url}")
Я получаю сообщение об ошибке `open_http ': 403 Запрещено (OpenURI :: HTTPError)
Как я могу обойти это? Каков правильный способ открыть URL-адрес файла, хранящегося на s3? Благодарю.
Спасибо. Это не вызывает ошибки, но не выполняет работу для следующего шага с камнем pdf-ридера (reader = PDF :: Reader.new (io)), который дает мне ошибку 'extract_io_from ': вход должен быть IO-подобным object или filename (ArgumentError) – Bastien
try 'open (Net :: HTTP.get (URI.parse (object.public_url)))' –