我怎样才能得到“快乐”的声音。使用Grails的Amazon S3插件的名称(通过Jets3t)

参考文献: http://www.grails.org/plugin/amazon-s3 http://svn.codehaus.org/grails-plugins/grails-amazon-s3/trunk/grails-app/services/org/grails/s3/S3AssetService.groovy http://svn.codehaus.org/grails-plugins/grails-amazon-s3/trunk/grails-app/domain/org/grails/s3/S3Asset.groovy 通过“快乐”的名字,我的意思是我正在上传的文件的真实名称...例如,如果我正在放置一个名为“foo.png”的文件,我希望该文件的URL为/ foo巴纽。目前,我只是获得了文件名似乎是GUID(没有文件扩展名)的内容。 有任何想法吗?     
已邀请:
您可以在S3Asset对象上设置关键字段以实现所需。 我将更新doco页面,其中包含更多相关信息。     
使用上传文件中的
length
inputstream
fileName
,您可以使用以下代码实现所需:
        S3Service s3Service = new RestS3Service(new AWSCredentials(accessKey, secretKey))
        S3Object up = new S3Object(s3Service.getBucket("myBucketName"), fileName)
        up.setAcl AccessControlList.REST_CANNED_PUBLIC_READ
        up.setContentLength length
        up.setContentType "image/jpeg"
        up.setDataInputStream inputstream
        up = s3Service.putObject(bucket, up)
我希望它有所帮助。     
实际解决方案(由@leebutts提供):
import java.io.*;
import org.grails.s3.*;

def s3AssetService;
def file = new File("foo.png"); //assuming this file exists     
def asset = new S3Asset(file);
asset.mimeType = extension;
asset.key = "foo.png"
s3AssetService.put(asset);
    

要回复问题请先登录注册