将一个AWS linux实例上的驱动器称为“符号链接”的最佳方法是什么?
目前我正在利用Apache的ProxyPass将代理/图像/反转到S3存储桶,并使用以下代码。
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /images/ http://s3bucket.s3-website-us-east-1.amazonaws.com/
这很好用,但仅限于通过Apache进行HTTP访问。如果我想从PHP本身写入/ images /目录,它将在本地编写。
所以我正在寻找一种很好的方法让/ images /重定向到S3存储桶以进行所有类型的操作。我看过S3FS,但是我很自信地走这条路。
我也在使用OpsWorks来处理我的EC2实例,因此无论我采用哪种方法都需要通过OpsWorks和/或Chef配方自动化。
另一个选项是AWS SDK for PHP。这可能要求我更改将文件写入/ images /目录的PHP代码。从长远来看,这可能是解决方案,但现在我需要另一种解决方案。
答案 0 :(得分:0)
虽然s3fs可以对s3进行虚假映射,但是你会遇到问题。问题是S3根本不像磁盘卷。
使用磁盘卷,您可以以块的形式写入和读取磁盘。您还可以在其他操作中锁定文件。
另一方面,S3是对象存储系统。它可以在整个文件上运行。S3FS使它工作,但是将文件复制到临时目录中,这样你就可以写入它,然后在完成后将它复制回S3。
简单操作可以正常工作,例如一次读取或写入整个文件,但在块级别上工作的任何内容都可能会失败。
我建议使用亚马逊提供的现有客户端更新您的PHP代码,这很容易。而不是move_uploaded_file
,而是使用客户端代码。