如何存储上传的文件以便以后在Heroku上处理?

时间:2015-04-28 15:32:22

标签: php heroku amazon-web-services amazon-s3

我正在编写一个处理上传文件的PHP应用程序。包含一些CSV,图像等的ZIP。如果在处理文件时出现警告/错误,则该过程需要用户输入,并且稍后可以重新处理相同的文件。在普通服务器上,我使用文件系统来存储文件,然后在我的数据库上保留路径。

然而,在Heroku我不能这样做。我正在使用AWS S3来存储其他文件上传。我是否应该将这些存储在S3上,每次我需要它们时,将它们下载到临时目录,处理它们,上传回来并删除本地副本?或者有没有办法在AWS S3上处理文件?也许装上S3桶?

1 个答案:

答案 0 :(得分:1)

您可以使用Amazon SDK S3流包装器,一旦设置,您就可以在PHP脚本中访问存储桶中的文件,就好像它是本地文件系统的一部分一样。然后,您可以将文件从S3直接解压缩到本地目录,正常处理,清理。并且文件仍然在S3

http://docs.aws.amazon.com/aws-sdk-php/guide/latest/feature-s3-stream-wrapper.html

可替换地..

不确定Heroku是否具体,但您可以使用s3fs Fuse over Amazon https://code.google.com/p/s3fs/wiki/FuseOverAmazon

在Linux中安装存储桶

这将允许您像本地文件系统一样安装存储桶并以这种方式与之交互。