Ошибка «Нет учетных данных» при использовании хранилища (S3) из aws -amplify для узла - PullRequest
0 голосов
/ 17 апреля 2020

При попытке получить изображение из корзины в S3 появляется ошибка «Нет учетных данных»:

import React, { Component } from 'react'
import { Auth, Storage } from 'aws-amplify'


componentDidMount(){

Storage.get('random-image.jpg')
                .then(data => {
                    console.log(data)
                }).catch(err => console.log(err))
         
}

Для того, что я слышал, мне нужно добавить объединенный пул удостоверений, я изо всех сил пытаюсь понять, в чем разница между aws -amplify и aws -sdk и, в частности, где именно в моем приложении я должен указать URL федеративного пула идентификации, чтобы он мог работать.

Вот мой код до сих пор, я использую сервис Cognito, чтобы позволить пользователям Зарегистрируйтесь и войдите, и S3 для пользователя, чтобы иметь возможность загружать изображения.

Amplify.configure({
    Auth: {
        mandatorySignId: true,
        region: config.cognito.REGION,
        userPoolId: config.cognito.USER_POOL_ID,
        userPoolWebClientId: config.cognito.APP_CLIENT_ID
    },
    Storage: {
        AWSS3: {
            bucket: config.s3.bucket,
            region: config.s3.region, 
        }
    }
})

Однако теперь мне нужно внедрить необходимый код, чтобы можно было выполнить запрос GET в корзину S3, и из того, что я прочитал, мне нужно открыть федеративный идентификационный пул, связанный с моим пользовательским пулом Cognito, а затем вставьте этот код в приложение:

AWS.config.region = 'eu-west-2'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'eu-west-2:70614759-5f98-48*******',
});

Однако это не aws-amplify, а aws-sdk. Я попытался импортировать aws -sdk и вставить этот код, но он не работает. Могу ли я поместить эту информацию в заявление Amplify.configure? На этой странице https://aws-amplify.github.io/docs/js/storage написано, что я могу, поэтому я сделал это:

Auth: {
        mandatorySignId: true,
        region: config.cognito.REGION,
        userPoolId: config.cognito.USER_POOL_ID,
        userPoolWebClientId: config.cognito.APP_CLIENT_ID
        // add the identity federated:
        identityPoolId: config.cognito.IDENTITY_POOL
    },

А теперь это дает мне Missing credentials in config

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...