如何使用amazon s3 grails插件上传和下载文件

时间:2012-11-06 16:39:47

标签: grails plugins file-upload amazon-s3 download

我正在使用Amazon s3 grails插件在s3上传csv文件。我真的可以使用这个插件上传csv文件吗?我正在尝试这个。我没有收到任何错误,文件也没有上传.Plugin无法从s3下载文件。请告诉我该如何下载?< / p>

2 个答案:

答案 0 :(得分:0)

我建议不要使用插件,而是将jets3t库导入到项目中。然后你可以做这样的事情:

String awsAccessKey = "YOUR_AWS_ACCESS_KEY"
String awsSecretKey = "YOUR_AWS_SECRET_KEY"
AWSCredentials awsCredentials = new AWSCredentials(awsAccessKey, awsSecretKey)
S3Service s3Service = new RestS3Service(awsCredentials)

S3Bucket[] myBuckets = s3Service.listAllBuckets()
println "How many buckets to I have in S3? " + myBuckets.length

请查看本指南以获取更多信息: http://www.jets3t.org/toolkit/code-samples.html

答案 1 :(得分:0)

我的回答有点晚,但我最近遇到了这个问题所以想到为未来的读者分享它。

我使用的是Grails版本:3.2.7和Grails AWS SDK S3 Plugin

这是 UploadController

class UploadController {

    def amazonS3Service
    def s3Bucket = 'YOUR-BUCKET-NAME'

    def index() {
        def multipartFile = request.getFile('file')

        if (multipartFile && !multipartFile.empty) {
            def fileName = multipartFile.getOriginalFilename()

            // push uploaded file to S3
            amazonS3Service.storeMultipartFile(s3Bucket, fileName, multipartFile)
            log.debug "written to s3"
        } else {
            log.debug "No file uploaded"
        }
        return
    }
}

从s3下载,根据文档:

// Get a file
file = amazonS3Servuce.getFile('asset/foo/someKey.jpg', '/Users/ben/Desktop/photo.jpg')