2010-08-26 22 views
2

參考 「快樂」 的名稱(通過的JetS3t):我如何獲得使用Amazon S3插件的Grails

通過 「開心」 的名字,我的意思是我正在上傳的文件的真實名稱...例如,如果我將一個名爲「foo.png」的文件,我希望該文件的url爲/foo.png。目前,我只是得到了一個GUID(沒有文件擴展名)的文件名。

任何想法?

回答

2

您可以在S3Asset對象上設置關鍵字段以實現您所需的功能。

我將更新doco頁面,並提供更多相關信息。

+0

甜,這做到了! – longda 2010-08-27 02:25:25

2

從上傳的文件中給出lengthinputstreamfileName,你要達到你想用下面的代碼是什麼:

 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) 

我希望它能幫助。

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); 
相關問題