我想在Heroku中部署一个应用来尝试他们的新Play!框架支持。对于我在网站上所读的内容(我必须承认我还没有尝试过),他们没有提供任何文件系统。这意味着(可能)Play中用于存储文件的Blob字段无法正常工作。

有人可以吗:

  • 确认是否可以在Heroku中使用Play Blob?
  • 提供“最佳”替代方案以在Heroku中存储文件吗?最好将它们存储在数据库(使用PostgreSQL)或其他地方吗?
  • 最佳答案

    我在github上举了一个如何使用Amazon S3做到这一点的示例:
    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();
    

    10-04 17:39