【问题标题】:aws Amazon S3 client credentials in pig user defined function猪用户定义函数中的 aws Amazon S3 客户端凭证
【发布时间】:2014-08-11 13:32:12
【问题描述】:

我为我的猪脚本创建了一个用户定义的函数来删除一个文件夹。 但是我如何获得凭据?

REGISTER s3://emr-custom-jars/custom.jar;

如果我将 register 放在我的 pig 脚本中,它可以访问 aws 存储上的文件。 所以我的凭据必须可用于猪。 我可以在不上传我的 jar 中的 accessKey 和 secretKey 的情况下访问我的凭据或 AmazoneS3Client 吗?

    private AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
    private AmazonS3Client s3client = new AmazonS3Client(credentials);  

    @Override
    public void deleteObjectsInFolder(String bucketName, String folderPath) {
        for (S3ObjectSummary file : s3client.listObjects(bucketName, folderPath).getObjectSummaries()){           
            s3client.deleteObject(bucketName, file.getKey());
        }
    }

【问题讨论】:

    标签: java amazon-web-services apache-pig emr


    【解决方案1】:

    是的,有几种方法可以提供访问凭据,而无需对 jar 中的值进行硬编码。 AmazonS3Client

    public AmazonS3Client() 
    

    构造一个新客户端来调用 Amazon S3 上的服务方法。将使用凭据提供程序链 按此顺序搜索凭据:

    • 环境变量 - AWS_ACCESS_KEY_ID 和 AWS_SECRET_KEY
    • Java 系统属性 - aws.accessKeyId 和 aws.secretKey
    • 所有 AWS 开发工具包和 AWS CLI 共享的默认位置 (~/.aws/credentials) 中的凭证配置文件
    • 实例配置文件凭证 - 通过 Amazon EC2 元数据服务交付

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      相关资源
      最近更新 更多