我正在努力让我的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
有没有其他人遇到过这个问题并有解决方案?
答案 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
}
}
}