gpt4 book ai didi

java - 如何通过非硬编码 key 使用 Redshift COPY

转载 作者:行者123 更新时间:2023-12-02 04:17:23 25 4
gpt4 key购买 nike

以下是我尝试过的方法,但没有成功。我认为问题是生成的 key 仅针对 EC2 实例的范围生成。因此,当 Redshift 尝试使用该命令调用 COPY 命令时,它无法被识别。

AWSCredentialsProvider credentialProvider = new DefaultAWSCredentialsProviderChain();
return new StringBuilder("COPY ").append(tmpPrefix)
.append(tableName)
.append(" FROM '")
.append(filePath)
.append("' WITH CREDENTIALS 'aws_access_key_id=")
.append(credentialProvider.getCredentials().getAWSAccessKeyId())
.append(";aws_secret_access_key=")
.append(credentialProvider.getCredentials().getAWSSecretKey())
.append("' JSON 'auto' GZIP ACCEPTINVCHARS ' ' TRUNCATECOLUMNS TRIMBLANKS;")
.toString();

以下是我遇到的错误

[Amazon](500310) Invalid operation: S3ServiceException:The AWS Access Key Id you provided does not exist in our records.,Status 403,Error InvalidAccessKeyId....

知道如何让它工作吗?

最佳答案

您正在使用 IAM 角色(它为您创建一组临时凭证 + token )。

当您使用临时凭证(访问权限、 secret 、 token )执行 COPY 命令时,您还提供了 token :
credentials 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>';

查看文档 http://docs.aws.amazon.com/redshift/latest/dg/t_loading-tables-from-s3.html

关于java - 如何通过非硬编码 key 使用 Redshift COPY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33171069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com