Вы все делаете это правильно, все просто идеально.Теперь возникает концепция: вы создали общедоступный веб-сайт без сервера, на котором показаны некоторые изображения, которые любой публично может увидеть, используя временные учетные данные на стороне клиента, которые AWS Cognito предоставляет своему браузеру.Но вы не предоставили публичный доступ для чтения к нему, тогда как они будут к ним обращаться?
Вы должны создать ACL , то есть список контроля доступа, для объектов, которые вы хотите видетьpublic для public-read при загрузке объектов / изображений, чтобы каждый мог получить доступ только к тем объектам, которые разрешено делать только вам. Если вы хотите, чтобы public тоже загружал, то вы также должны предоставить доступ для записи.
Другое дело, что публичный доступ к корзине не означает, что у публики есть неограниченные полномочия для вашей учетной записи AWS, они намеренно предоставляют конкретное местоположение и место, где они могут взаимодействовать со службой хранения вашего веб-сайта.
вот код, как я это делаю:
var file = fileChooser.files[0];
if (file) {
results.innerHTML = '';
var params = {
Key: 'maus/group1.jpeg',
ContentType: file.type,
Body: file,
ACL: 'public-read'
};
s3.putObject(params, function (err, data) {
if (err) {
results.innerHTML = 'ERROR: ' + err;
}else {
results.innerHTML = ' snapshot uploaded !!!';
}
}).on('httpUploadProgress', function (progress) {console.log(progress);});
} else {
results.innerHTML = 'Nothing to upload.';
}
И если вы хотите более строгий контроль над своим сегментом, то вы можете использовать аутентифицированные пулы идентификации длясделайте это, а затем измените ваш код таким образом, чтобы конкретный пользователь мог получить доступ к определенным объектам в корзине s3 с именем пользователя в качестве префикса объектов, которые он / онаон загружает.
например,
yourbucketname / user1 / * доступно только для user1
неаутентифицированные пулы пользователей сами означают, что вы хотите, чтобы вседля доступа к конкретному ресурсу AWS с использованием временных учетных данных