2

参考:

通过“快乐”的名称,我的意思是我正在上传的文件的真实名称......例如,如果我放置一个名为“foo.png”的文件,我希望文件的 url 是 /foo .png。目前,我只是得到文件名的 GUID(没有文件扩展名)。

有任何想法吗?

4

3 回答 3

2

使用length,inputstreamfileName从上传的文件中给出,您应该使用以下代码实现您想要的:

        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)

我希望它有所帮助。

于 2010-08-26T23:20:29.200 回答
2

您可以在 S3Asset 对象上设置关键字段来实现您所需要的。

我将使用有关此的更多信息更新 doco 页面。

于 2010-08-27T01:42:04.687 回答
1

实际解决方案(由@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);
于 2010-08-27T02:29:06.727 回答