У меня есть проект rails-api, который предоставляет api для доступа к моим данным.Как получить файл из rails-api, который использует wavewave?
Я использую несущую волну для хранения моего файла, мою модель под названием User
и атрибут файла image
.
Таким образом, атрибут изображения содержит file_name
, url
и другую информацию.
Чтобы перевести файл через api, я добавил драгоценный камень carrierwave-base64
.
Я понимаю Загрузить Процесс. Клиентское приложение кодирует файл в base64 code
, а затем отправляется на сервер через сообщение json. Например:
{user: {email: "[email protected]", image: "data:image/jpg;base64,#{base64_image}"}
Так что, когда бэкенд получить запрос JSon, то carrierwave будет анализировать код base64 в файл и сохранить его на локальный или S3
То, что я не понимаю, это Download
процесс:
Когда я прошу информацию о пользователе, что я предполагаю, что файл изображения будет передан в качестве base64 code
в сообщении JSon, а затем клиентское приложение будет кодировать base64 code
в файл (изображение), и затем отобразите.
Но на самом деле, что я могу предоставить для json-данных, это URL-адрес файла, а не код base64.
Причина, по которой я хочу получить файл (изображение) с api-сервера, заключается в том, что я не хочу, чтобы клиентское приложение напрямую обращалось к s3 по URL-адресу. Поэтому каждый раз, когда клиентское приложение хочет получить файл, он будет запрашивать api-сервер, а api-server получит файл и передаст его клиенту.
Кто-нибудь может объяснить, как сделать загрузку?
Или, если мне посчитали неправильную стратегию, мне нужна еще одна точка api для ответа файлового объекта, а не просто сопровождать пользовательскую модель.
Cheers.
ты хорошая вещь с загрузкой, но при загрузке вам нужно т o отправить URL-адрес без base64. Это то, что я делаю в своем проекте, и его традиционный и хороший способ сделать это - это открыть общедоступное разрешение на s3 при загрузке и использовании expying_url (60,: thumb) для ваших клиентов –