API-интерфейс Grape не может загрузить данные изображения в кодировке base 64 в activestorage S3 - PullRequest
0 голосов
/ 08 мая 2020

У меня есть конечная точка API ниже, написанная в grape, которая принимает параметр, закодированный в базе 64, который должен быть загружен в S3 с помощью active_storage. Я также использую гем active-storage-base64, который обеспечивает поддержку вложений base64 внутри активного хранилища.

post 'create_new_order_for_user' do
    p "inside create new order"
    app = authorize_application(declared(params)[:app_id], declared(params)[:app_secret])
    if app == 404
      { status: false, message: "App does not exist"}
    else
      parsed_params = declared(params, include_missing: false)
      p "params is #{parsed_params}"
      order = current_user.orders.create(parsed_params.except(:app_id, :app_secret))
      p "order is #{order}"
      order.avatar.attach(data: params[:avatar])
      p order.avatar.service_url.split('?').first
      if order.save && order.avatar.attached?
        data = {
            status: true,
            message: "Created New Order Successfully!",
            data: order.order_data
        }
      else
        data = { status: false, message: order.errors.full_messages.join(','), errors: order.errors.messages }
      end
      data
    end
  end

Параметры, отправленные из внешнего интерфейса, показаны ниже:

enter image description here

Однако, когда я пытаюсь прикрепить изображение к порядку, я продолжаю получать эту ошибку, показанную ниже:

ActiveSupport :: MessageVerifier :: InvalidSignature (ActiveSupport :: MessageVerifier :: InvalidSignature):

Как я могу преодолеть эту ошибку? Любая помощь по этому поводу, пожалуйста?

...