我正在寻找 Grails 应用程序的云托管。过去,我尝试过 CloudFoundry、JElastic、AppFog 等几种,但始终无法成功部署应用程序。该应用程序需要:
- MySQL数据库
- 文件系统访问,以存储用户上传的可搜索插件索引文件和图像
我只会将此站点用于质量检查,因此不关心性能。显然,我希望部署应用程序尽可能简单,并且我希望为托管支付尽可能少的费用。
我已经尝试使用 CloudFoundry Grails 插件部署到 CloudFoundry,但没有任何成功。
我正在寻找 Grails 应用程序的云托管。过去,我尝试过 CloudFoundry、JElastic、AppFog 等几种,但始终无法成功部署应用程序。该应用程序需要:
我只会将此站点用于质量检查,因此不关心性能。显然,我希望部署应用程序尽可能简单,并且我希望为托管支付尽可能少的费用。
我已经尝试使用 CloudFoundry Grails 插件部署到 CloudFoundry,但没有任何成功。
我已经成功地在 Amazon EC2 上托管了基于 Grails 的网站。为了降低成本,我使用了小型预留实例。我认为可以将 Amazon EC2 AMI 用于临时文件,例如可搜索的索引文件,因为如果 AMI 崩溃,您始终可以重新索引。
为了存储用户图像,我使用 Amazon S3 和 Grails AWS 开发工具包插件 ( http://grails.org/plugin/aws-sdk )。使用 Amazon SDK http://blanq.github.io/grails-aws/1.2.12.1/index.html将文件上传到 S3 非常容易-
上传具有公共读取权限的文件。
amazonWebService.s3.putObject(new PutObjectRequest('some-grails-bucket',
'somePath/someKey.jpg', new File('/Users/ben/Desktop/photo.jpg')).withCannedAcl( CannedAccessControlList.PublicRead ) )
下载一个文件。
amazonWebService.s3.getObject(new GetObjectRequest('some-grails-bucket',
'somePath/someKey.jpg'), new File('/Users/ben/Downloads/photo.jpg'))
删除一个文件。
amazonWebService.s3.deleteObject('some-grails-bucket', 'somePath/someKey.jpg')
我希望这有帮助。
我知道这不是一个理想的解决方案,但是您可以使用 mongodb 的 gridfs 来存储您的文件而不是文件系统。Cloudfoundry 支持 mongodb,我相信你知道。
不过,这对您的可搜索插件索引没有帮助。