我想构建一个应用程序,任何用户都可以来直接上传文件并获取分析报告。应用程序中的用户不必担心创建分析,他所要做的只是上传数据。我试图用 SDK 来做到这一点,但我无法达到任何目的。
这就是我尝试创建 s3 数据源的方式。
const { QuickSightClient, CreateDataSetCommand, CreateDataSourceCommand } = require("@aws-sdk/client-quicksight");
const { CognitoIdentityClient } = require("@aws-sdk/client-cognito-identity");
const { fromCognitoIdentityPool } = require("@aws-sdk/credential-provider-cognito-identity");
console.log("Checking...")
const client = new QuickSightClient({
region: "us-east-2",
credentials: fromCognitoIdentityPool({
client:new CognitoIdentityClient({region:'us-east-2'}),
identityPoolId: 'us-east-2:.........................'
})
});
const params = {
AwsAccountId:'............',
DataSourceId: 'aws-sdk-412021',
Name: 'demo-s3.csv',
Type: 'S3'
}
const uploadFile = async()=> {
const data = await client.send(
new CreateDataSourceCommand(params, (err,data) => {
if(err) alert(err)
else{
console.log(data)
}
})
)
alert("success")
}
uploadFile();
我得到的错误:
CORS 策略已阻止从源“null”访问“https://quicksight.us-east-2.amazonaws.com/accounts/.../data-sources”获取:对预检请求的响应不通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
{消息:缺少身份验证令牌}