2017-04-04 112 views
0

我已经有PlayFramework应用程序运行,但我正在将其迁移到Heroku。因为在Heroku上我不能像我在我的应用程序中那样使用本地文件系统。我被迫使用Amazon S3,但我不知道如何重写缩略图的创建。对于我使用:Heroku PlayFramework - 创建缩略图

https://github.com/coobird/thumbnailator

Thumbnails.of(picture.getFile()).size(300,300).toFile(new File("public/images/data", thumb)); 

的问题是,我不能在Heroku的做到这一点,因为文件不会被保存。

那么我该如何创建缩略图呢?如果我不想使用另一种服务,它会为我生成缩略图并以某种方式将它们保存为s3 ...

老实说,如果我能知道有多少种不同的服务需要使用java的简单页面,那么我会留在永远的PHP ...

回答

1

在Heroku(如在许多PaaS中),没有永久的文件系统。但是,您可以访问临时目录。 所以,你可以将其保存到一个临时文件

File temp = File.createTempFile("prefix", "suffix").getAbsolutePath; 
Thumbnails.of(picture.getFile()).size(300,300).toFile(temp, thumb)); 

然后将您的文件,并将其上传到S3。 如果你严格坚持不使用S3存储二进制文件,那么你可以base64文件内容并将其保存到数据库中。 (见这种方法的一些优点/缺点here