URL-адрес изображения, возвращенный из aws

#amazon-web-services #image

#amazon-web-services #изображение

Вопрос:

Я пытаюсь отобразить изображение, которое было загружено в aws в приложении react. Что возвращается в ответе, который я использую, чтобы попытаться отобразить мои изображения на странице, примерно так:

 {
description: "Rx Renewal - Bottle"
imageLocation: "attachments/8b2050a1/061e/...
previewImageLocation: "attachment-preview-/...
}
 

и я попытался использовать previewImageLocation and imageLocation в качестве моего src в моем элементе img. Но все, что я получаю, это появление текста alt. Изображения не отображаются. Мне интересно, есть ли какой-то секрет в URL-адресах изображений aws, о котором я не знаю? Это не то, что мне действительно нужно для отображения изображения? Любая информация была бы очень полезной.

Комментарии:

1. Я предполагаю, что вы используете S3 для размещения изображений, но вам следует внести немного больше ясности в свой вопрос с подробным описанием конкретных технологий, которые вы используете — это поможет получить точный ответ от сообщества.

Ответ №1:

Если вы пытаетесь сделать это в приложении react, вам следует обратиться к руководству по библиотеке React Amplify. Использование библиотеки Amplify — самый простой способ взаимодействия с сервисами AWS:

 // get the signed URL string
const signedURL = await Storage.get(key) // get key from Storage.list

// inside your template or JSX code. Note <a download> doesn't work here because it is not same origin
<a href={signedURL} target="_blank">{fileName}</a>
 

Рабочий процесс для представления изображения следующий (при условии, что вы можете получить ключ объекта изображения, хранящегося в корзине S3, из базы данных или что-то подобное):

  • Получение ключа объекта изображения, хранящегося в корзине S3
  • Получение подписанного URL-адреса из этого ключа объекта с помощью библиотеки Amplify или AWS SDK
  • Использование этого URL-адреса для отображения изображения или его загрузки

Вы можете сделать это, используя Amplify Lib, как указано выше. Приветствия