Хорошо, ребята,
После буквально недель расследования этого. Это ответ, я знаю, что это поможет десяткам людей, имеющих дело с Gatsby и удаленными изображениями.
Вся цель здесь заключалась в том, чтобы иметь прямой доступ к удаленному изображению в поле модели в graphql НЕПОСРЕДСТВЕННО. Никакого зацикливания на длинных массивах изображений из какого-то запроса Gatsby listAllImages и подобной чепухи. Это добавляет фактический ИСПОЛЬЗУЕМЫЙ GATSBY-IMAGE прямо в поле вашей модели, которое будет использоваться немедленно.
- Определите S3Object в вашем Schema.Graphql, как показано ниже.
type S3Object {
bucket: String!
key: String!
region: String!
}
Ответ здесь - создание настраиваемого преобразователя в вашем файле узла gatsby. И уловка здесь заключается в том, чтобы войти в схему уровня Гэтсби и увидеть НАСТОЯЩЕЕ имя вашей модели. Это секрет. Вам нужно запустить:
gatsby repl
Это переведет вас в интерфейс командной строки Gatsby, а затем введите:
schema
ЭТО ПОКАЖЕТ ВАМ НАЗВАНИЯ УРОВНЕЙ Скомпилированной схемы. Итак, ваш S3Object на самом деле называется _s3object. Используя это имя, к которому, по-видимому, было добавлено ваше имя api .... smfh .... должен использоваться с настраиваемым преобразователем с запросом gql внутри него для добавления файла в вашу модель. Увидеть ниже. Теперь, когда бы вы ни добавили S3Object в качестве типа поля, у вас будет доступ к изображению с помощью запроса четкости изображения! Вы также должны использовать gatsby-s3-image-source для захвата всех изображений, которые будут использоваться в вашей файловой системе!
Это было очень сложное решение для нуб, как я, Гэтсби, я надеюсь, что это решит проблему с удаленным файлом, как у меня!