0
以下是我所嘗試的,但它不起作用。我認爲問題是生成的密鑰只是針對EC2實例的範圍生成的。因此,當Redshift嘗試使用該命令調用COPY命令時,則無法識別它。如何使用非硬編碼密鑰的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角色設置你試圖執行COPY命令的地方使用ec2實例嗎? – Vor
EC2具有訪問特定存儲桶的IAM角色。但紅移是通過JDCB命令(通過JBOSS)訪問的,用戶使用Redshift憑證。 – dinesh707