file_exists on Amazon S3


file_exists on Amazon S3

我有一个网页,列出了数千个指向图像文件的链接。目前的处理方式是使用一个非常大的HTML文件,该文件使用图像的名称和图像文件的链接进行手动编辑。图像管理得不好,所以经常有很多链接断开或名称错误。

以下是HTML文件中数千行中的一行示例:

    <h4>XL Green Shirt<h4>
<h5>SKU 158f15 </h5>
    [<a href="http://website.com/images/products/TIFF/158f15.tif" target="_blank">TIFF</a>] 
    [<a href="http://website.com/images/products/158f15.jpg" target="_blank">JPEG</a>]
    [<a href="http://website.com/images/products/PNG/158f15.png" target="_blank">PNG</a>]
    <br />

我在数据库中有关于图像的产品信息,所以我的解决方案是用PHP写一个页面,遍历数据库中的每个产品编号,看看是否存在具有相同id的文件,然后显示适当的链接和信息。

我使用PHP函数file_exists()完成了这项操作,因为产品id与文件名相同,并且它在我的本地机器上运行良好。问题是所有的图像都托管在AmazonS3上,所以在S3上运行这个函数数千次总是会导致请求超时。我尝试过类似的PHP函数,也尝试过ping URL和测试200或404响应,都是超时的。

有没有一种解决方案可以检查远程URL上是否存在文件,并且消耗很少的资源?或者有没有一种更新颖的方法可以解决这个问题?

我认为,在将记录放入数据库时,最好确保文件的存在,而不是在每次加载页面时检查是否存在数千个文件。

也就是说,另一种解决方案可能是将s3fs与本地存储缓存目录一起使用,以检查文件是否存在。这将比直接检查S3存储要快得多。CCD_ 2还将提供一种将新文件写入S3存储器的方便方式。