清理 Prestashop 的原始产品图片以减少存储空间的使用

Clean Up Prestashop's Original Product Images to Reduce Storage Usage

我管理一个使用 1.6 版构建的 Prestashop 网站,上面有 1000 多种产品。

每次上传新产品图片时,Prestashop 都会将其存储在文件结构中以备将来访问,并根据当前主题(类别页面、产品、购物篮等)的各种要求调整图片大小。

随着大量产品和 14 个较小版本的创建,它们很快就会填满存储空间 space。

我正在寻找一种方法来删除原始图像并将其替换为最大调整后图像的副本。

例如产品 5010 的原始图像名为 5010.jpg,下一个最大的图像是 5010-big_default_2x.jpg

我想删除5010.jpg并将5010-big_default_2x.jpg复制到5010.jpg,取而代之

我正在考虑使用某种 cli 递归正则表达式搜索以 .jpg 结尾的数字文件,存储文件名,删除文件并将 [filename]-big_default_2x.jpg 复制到 [filename]。 jpg

服务器在具有完全根访问权限的 Centos 6.7 上运行。

感谢任何建议!

像这样简单的事情怎么样:

images.php
==========

require 'config/config.inc.php'

$productIds = Db::getInstance(...) // Select all products IDs

$i = 0;
$s = 0;
foreach ($productIds as $id_product) {
  $bits = explode('', (string)$id_product);
  $directory = _PS_IMG_DIR.'/'.implode('/', $bits);
  $filePath = $directory.'/'.(string)$id_product.'.jpg';

  if (file_exists($filePath)) {
    $resizedFilePath = $directory.'/'.(string)$id_product.'-large_default.jpg';
    $resizedImageData = file_get_contents(resizedFilePath);
    file_put_contents($filePath, $resizedImageData);
    $s++;
  }
  $i++;
}

echo 'Folders: '.$i.'; Successful copies: '.$s;

通过FTP上传并在浏览器中调用一次