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 オブジェクトにキー フィールドを設定して、必要なものを実現できます。

詳しくはドコのページを更新します。

于 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 に答える