Как загрузить изображение на страпи?

Как я могу загружать изображения на сервер Strapi?

  • Я использую плагин GraphQL.
  • Я предпочитаю единую конечную точку для всего API

Я нашел статью о том, как управлять загрузкой файлов, но у меня несколько вопросов

Нужно ли мне преобразовывать изображение в строку Base64?

Мой рабочий сервер будет PostgreSQL. Я планировал хранить изображения как Blob. Но теперь оказалось, что я могу отправлять данные формы только на серверы Strapi.

Мне нужно что-то вроде apollo-upload-client?

Примечание. В настоящее время я использую vue-apollo и nativescript-vue в качестве интерфейса.

import VueApollo from "vue-apollo";
import { ApolloClient, InMemoryCache, HttpLink } from "apollo-boost";
import { setContext } from "apollo-link-context";

person Cem Kaan    schedule 11.05.2020    source источник
comment
morioh.com/p/20e376ed62fb содержит руководство   -  person Cem Kaan    schedule 17.05.2020


Ответы (2)


Если вы пытаетесь загрузить файлы с помощью GraphQL, я предлагаю вам проверить эту суть - https://gist.github.com/alexandrebodin/fedc71c8513bfbb6283cc90ae62755c5.

У вас должна быть вся необходимая информация для этого.

person Jim LAURIE    schedule 15.05.2020
comment
ссылка на суть не работает - person Cem Kaan; 15.05.2020
comment
Я пытаюсь понять код реакции. Выгрузка Скалярный тип Выгрузки представляет собой выгрузку файла. - person Cem Kaan; 15.05.2020

Благодаря ответу @Jim LAURIE я заставил свой узел работать:


import { GraphQLClient, gql } from "graphql-request"
import { createReadStream } from "fs";

[...]

  const endpoint = 'http://localhost:1337/graphql';

  const graphQLClient = new GraphQLClient(endpoint, {
    headers: {
      authorization: `Bearer ${jwt}`,
    },
  });

  try {
    const data = await graphQLClient.request( gql`
    mutation($file: Upload!) {
      upload(file: $file) {
        id
        name
      }
    }
  `, {
      file: createReadStream(__dirname + '/Strapi/test/picture.jpg') // ⚠ Ensure path is correct or the stream will never send data and you will have Socket Hang out error
  });

    console.info("ID of file:" + data.upload.id);
    console.info(data)
    console.info("data")
  } catch (error) {
    console.error(error)
    console.error("error")
  }

Если вы не знаете, как получить JWT проверьте документацию по тестированию модулей Strapi, перевод на GraphQL должен быть легким.

person Juanmabs22    schedule 14.09.2020