2011-09-06 57 views
2

可能重复播放框架:
Store Blob in Heroku (or similar cloud services)处理文件上传在Heroku

我知道Heroku的具有只读文件系统,并且已经看了约attachment_fu和SO问题其他类似的Ruby宝石用于临时处理文件上传,以便它们在写入Amazon S3之前永远不会真正击中磁盘(除temp之外)。但是,我想为即将推出的项目使用Play Framework(Java),并且需要支持将图片上传到图库。

显然我需要使用一个可写的后台存储,如S3或数据库blob字段:只要它适用于小容量网站(每月几百个请求),我就不会与任何一个人结婚。有没有人在Heroku上玩过这个游戏?我是Play Framework的新手,对Heroku来说是新手,所以即使是非常明显的答案也会有所帮助!

+0

我在两个地方发布了我的答案。不确定典型的礼仪是什么样的。 –

回答

4

我把如何与Amazon S3这样做在GitHub上的例子:
https://github.com/jamesward/plays3upload

基本上你只需要将文件发送到S3并保存在实体的关键在于:

AWSCredentials awsCredentials = new BasicAWSCredentials(System.getenv("AWS_ACCESS_KEY"), System.getenv("AWS_SECRET_KEY")); 
AmazonS3 s3Client = new AmazonS3Client(awsCredentials); 
s3Client.createBucket(BUCKET_NAME); 
String s3Key = UUID.randomUUID().toString(); 
s3Client.putObject(BUCKET_NAME, s3Key, attachment); 
Document doc = new Document(comment, s3Key, attachment.getName()); 
doc.save(); 
listUploads();