从S3加载AWS Redshift时为什么会出现S3ServiceException错误?

Tod*_*odd 5 amazon-s3 amazon-web-services amazon-redshift

尝试从S3中的CSV文件加载Redshift中的表时出现错误。错误是:

   error:  S3ServiceException:All access to this object has been disabled,Status 403,Error AllAccessDisabled,Rid FBC64D9377CF9763,ExtRid o1vSFuV8SMtYDjkgKCYZ6VhoHlpzLoBVyXaio6hdSPZ5JRlug+c9XNTchMPzNziD,CanRetry 1
  code:      8001
  context:   Listing bucket=amazonaws.com prefix=els-usage/simple.txt
  query:     1122
  location:  s3_utility.cpp:540
  process:   padbmaster [pid=6649]
Run Code Online (Sandbox Code Playgroud)

使用的复制语句为:

copy public.simple from 's3://amazonaws.com/mypath/simple.txt' CREDENTIALS 'aws_access_key_id=xxxxxxx;aws_secret_access_key=xxxxxx' delimiter ',';
Run Code Online (Sandbox Code Playgroud)

由于这是我第一次尝试使用Redshift和S3,因此我将simple.txt文件(及其目标表)保留为单个字段记录。我已经在Aginity Workbench和SQL Workbench中运行了该副本,并且结果相同。

我单击了S3文件的属性选项卡中的链接,它下载了该simple.txt文件-这样看来输入文件是可访问的。可以肯定的是,我已经授予它公共访问权限。

不幸的是,我没有在Redshift的“负载”选项卡中看到任何有助于调试的其他信息。

谁能看到我做错的任何事情?

Tod*_*odd 3

从 URL 中删除amazonaws.com解决了该问题。现在生成的 COPY 语句是:

copy public.simple from 's3://mypath/simple.txt' CREDENTIALS 'aws_access_key_id=xxxxxxx;aws_secret_access_key=xxxxxx' delimiter ',';
Run Code Online (Sandbox Code Playgroud)