Как загрузить объекты из S3, используя AWS SDK - RESTful - PullRequest
0 голосов
/ 22 апреля 2020

Я ищу программный c способ загрузки изображений из корзины S3 на мой компьютер.

Я пытался " Использование send_file для загрузки файла из Amazon S3?"но он просто перенаправил меня на ссылку, которая показывает только мой объект PDF.

Это моя функция загрузки с использованием AWS документации :

s3 = Aws::S3::Resource.new(region: 'us-east-2')
obj = s3.bucket('bucket').object('image')
obj.get(response_target: '~/')

, и это мой код загрузки по ссылке:

data = open("https://#{bucket}.s3.amazonaws.com/#{filepath}")
send_data data.read, filename: "file.pdf", type: "application/pdf", disposition: 'inline', stream: 'true', buffer_size: '4096'

obj.get это то, что сбивает с толку: я хочу загрузить его на свой компьютер, а не на мою кодовую базу.

Некоторые говорят, что ссылка на скачивание - это просто ссылка на изображение из моего ведра, если для нее установлено значение publi c что это такое. О чем это?

Окончательное решение: измените расположение на «вложение»

data = open("https://#{bucket}.s3.amazonaws.com/#{filepath}")
send_data data.read, filename: "file.pdf", type: "application/pdf", disposition: 'attachment', stream: 'true', buffer_size: '4096'

1 Ответ

1 голос
/ 22 апреля 2020

Если вы измените расположение на attachment браузер загрузит файл?

Это может быть связано с внутренним значением расположения содержимого.

Проверяли ли вы этот вопрос? https://superuser.com/questions/1277819/why-does-chrome-sometimes-download-a-pdf-instead-of-opening-it

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...