有没有一种方法可以使用AWS Amplify library(JavaScript)在没有cognito用户poool和身份池的情况下访问s3 bucket?
我试图使用amplify library(JavaScript)来访问s3 bucket,并使用STS生成的临时访问密钥和秘密访问密钥。但似乎我需要一个cognito用户池和身份池有没有一种方法可以使用AWS Amplify library(JavaScript)在没有cognito用户poool和身份池的情况下访问s3 bucket?,javascript,amazon-web-services,amazon-s3,amazon-cognito,aws-amplify,Javascript,Amazon Web Services,Amazon S3,Amazon Cognito,Aws Amplify,我试图使用amplify library(JavaScript)来访问s3 bucket,并使用STS生成的临时访问密钥和秘密访问密钥。但似乎我需要一个cognito用户池和身份池 import Amplify, { Storage } from 'aws-amplify'; Amplify.configure({ Storage: { region: 'ap-south-1', endpoint: "http://localhost:4572",
import Amplify, { Storage } from 'aws-amplify';
Amplify.configure({
Storage: {
region: 'ap-south-1',
endpoint: "http://localhost:4572",
bucket: 'mybucket',
}
})
Storage.list('photos/').then(res => console.log(res)).catch(err => console.log(err))
有没有一种不用AWS SDK就能实现的方法
[WARN] 56:56.803 AWSS3Provider - ensure credentials error No Cognito Identity pool provided for unauthenticated access
No credentials
您可以使用AWS SDK for javascript,该javascript在后台使用AWS API。在这种情况下,您需要将s3 bucket公开/向所有人开放,或者使用AWS IAM凭据,这不是一种安全的方式。通常不建议在Amplify中直接使用IAM凭据,因为您需要自己进行身份验证/授权(决定是否授予STS证书的过程)是危险的 然而,这样做有很多正当的理由,所以这里说:是关于这个问题的,并且说你可以通过类似
AWS.config.update({
凭证:新AWS.credentials({
accessKeyId:'密钥',
secretAccessKey:“另一个密钥”
})
});
在
Amplify.configure()之前
我计划使用AWS STS生成临时AccessKeyId和SecretAccessKey。我之所以坚持使用amplify,是因为它为我提供了在blob级别配置访问级别以及上传和下载进度等功能的简单/干净的方法,但这也不是一种安全的方法。你需要一些标准a供STS决定谁将能够访问资源。仍然会收到相同的错误。我是否做错了什么??从“AWS sdk”导入AWS;从“AWS Amplify”导入Amplify,{Storage,Auth};AWS.config.update({credentials:new AWS.credentials({accessKeyId:'the key',secretAccessKey:'the other key'}));放大。配置({存储:{区域:'ap-south-1',端点:'http://localhost:4572,bucket:'mybucket'}});Storage.list('/')。然后(res=>console.log(res)).catch(err=>console.log(err))