Grails AWS SDK插件无法解析PutObjectRequest

时间:2015-07-26 16:25:42

标签: amazon-web-services grails amazon-s3 aws-sdk

我正在努力让我的Grails应用程序与Amazon S3一起使用,我一直在关注以下文档... http://agorapulse.github.io/grails-aws-sdk/guide/single.html

在以下步骤cudaError_t error = cudaMemcpy(d_fooArray, fooArray, bytes, cudaMemcpyHostToDevice);

项目无法解析类amazonWebService.s3.putObject(new PutObjectRequest('some-grails-bucket', 'somePath/someKey.jpg', new File('/Users/ben/Desktop/photo.jpg')).withCannedAcl(CannedAccessControlList.PublicRead)),我尝试手动导入PutObjectRequest,但仍无法找到该类。我唯一能想到的是我可能有一个旧版本的SDK,但我只是按照教程。

我的com.amazonaws.services.s3.model.PutObjectRequest ...

BuildConfig.groovy

有没有其他人遇到过这个问题并有解决方案?

1 个答案:

答案 0 :(得分:1)

我没有使用该插件,我只是直接使用SDK。不确定你需要一个插件。您不需要httpcomponents才能工作

将此添加到您的依赖项块:

compile('com.amazonaws:aws-java-sdk-s3:1.10.2') {
    exclude group: 'com.fasterxml.jackson.core'
}

继承我使用的豆子。我在bean配置中设置了密钥,访问和存储桶数据

class AmazonStorageService implements FileStorageService {


    String accessKeyId
    String secretAccessKey
    String bucketName

    AmazonS3Client s3client

    @PostConstruct
    private void init() {
        s3client = new AmazonS3Client(new BasicAWSCredentials(accessKeyId, secretAccessKey));
    }

    String upload(String name, InputStream inputStream) {
        s3client.putObject(new PutObjectRequest(bucketName, name, inputStream, null).withCannedAcl(CannedAccessControlList.PublicRead));
        getUrl(name)
    }

    String upload(String name, byte[] data) {
        upload(name, new ByteArrayInputStream(data))
    }

    String getUrl(String name) {
        s3client.getUrl(bucketName, name)
    }

    Boolean exists(String name) {
        try {
            s3client.getObjectMetadata(bucketName, name)
            true
        } catch(AmazonServiceException e) {
            false
        }
    }

}