Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services &引用;未找到清单文件";使用AWS CLI创建S3 QuickSight数据源时出错_Amazon Web Services_Amazon S3_Aws Sdk_Amazon Quicksight - Fatal编程技术网

Amazon web services &引用;未找到清单文件";使用AWS CLI创建S3 QuickSight数据源时出错

Amazon web services &引用;未找到清单文件";使用AWS CLI创建S3 QuickSight数据源时出错,amazon-web-services,amazon-s3,aws-sdk,amazon-quicksight,Amazon Web Services,Amazon S3,Aws Sdk,Amazon Quicksight,当使用AWS QuickSight API尝试创建指向存储在S3中的清单的数据源时,我总是遇到以下错误: An error occurred (InvalidParameterValueException) when calling the CreateDataSource operation: Manifest file was not found 这可以通过CLI和C#SDK实现。通过在QuickSight用户界面中手动创建数据集,我已确认清单存在且正确。我已经尝试过bucket名称/密钥

当使用AWS QuickSight API尝试创建指向存储在S3中的清单的数据源时,我总是遇到以下错误:

An error occurred (InvalidParameterValueException) when calling the CreateDataSource operation: Manifest file was not found
这可以通过CLI和C#SDK实现。通过在QuickSight用户界面中手动创建数据集,我已确认清单存在且正确。我已经尝试过bucket名称/密钥格式的各种组合(bucket名称、s3 arn、http路径、s3密钥等)

我发送的请求如下:

aws quicksight create-data-source --cli-input-json file://./create-data-source-cli-input.json
以下是请求的内容(私有值替换为xxxx)

{
“AwsAccountId”:“xxxx”,
“数据源ID”:“85a8e263-a052-42df-abc9-98c6e60678e57”,
“名称”:“TestDatasource”,
“类型”:“S3”,
“数据源参数”:{
“S3参数”:{
“ManifestFileLocation”:{
“桶”:“xxxx”,
“密钥”:“xxxx”
}
}
}
}

还有其他人遇到过这个吗?提前感谢您的帮助。

我会给您一个列表,列出您可以尝试的方法(它可能会解决您的问题,也可能不会解决您的问题)

  • 首先查看角色

    • 您可以在控制台上执行此操作,也可以自己编写一个,授予对s3的quicksight访问权限 它看起来像这样
  • 另外,请查看您可能需要的其他类型、角色或策略

  • 如果这些不起作用,请查看此链接,但我认为您可能已经这样做了


希望这有帮助

在实验之后,我发现由ManifestFileLocation中的键指定的文件不能在名称中包含空格。我尝试在请求中用+字符替换空格,并使用%20,但仍然不起作用


我找到的唯一解决方案是删除清单文件名中的任何空格。如果这是唯一的解决方案,那么它似乎一定是QuickSight SDK中的一个bug。

请检查是否通过QuickSight管理访问菜单向特定bucket提供了权限。
管理访问
->
安全和权限
->
快速查看AWS服务访问

谢谢约瑟夫,我验证了权限。我已经签出了上面提到的链接。我不明白为什么它在QuickSight控制台中工作,但不使用AWS SDK。可能是某种权限错误。“未找到清单文件”消息没有太大帮助。
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:ListAllMyBuckets",
        "Resource": "arn:aws:s3:::*"
    },
    {
        "Action": [
            "s3:ListBucket"
        ],
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::*"
        ]
    },
    {
        "Action": [
            "s3:GetObject",
            "s3:GetObjectVersion"
        ],
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::*/*"
        ]
    }
]
}