При попытке получить изображение из корзины в 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