文件
yjyf/scripts/sync_all_goods_images.php
YuanWen 68ac7876fd chore: 优化上传分类规则并新增分享功能
- 新增上传分类归一化处理,统一白名单校验规则
- 新增COS存储记录同步逻辑
- 新增分享功能支持,配置多页面分享参数
- 新增订单案例分享按钮
- 新增订单自动校验和回收命令
- 新增测试脚本和图片同步脚本
- 优化后台上传分类配置,统一分类映射
2026-11-07 09:54:41 +08:00

59 行
2.1 KiB
PHP

<?php
define('APP_PATH', __DIR__ . '/../server/application/');
require __DIR__ . '/../server/thinkphp/base.php';
\think\App::initCommon();
use think\Loader;
Loader::addNamespace('Qcloud\Cos', __DIR__ . '/../server/addons/cos/library/Qcloud/Cos/');
Loader::addNamespace('GuzzleHttp\Command', __DIR__ . '/../server/addons/cos/library/Guzzle/command/src/');
Loader::addNamespace('GuzzleHttp\Command\Guzzle', __DIR__ . '/../server/addons/cos/library/Guzzle/guzzle-services/src/');
Loader::addNamespace('GuzzleHttp\UriTemplate', __DIR__ . '/../server/addons/cos/library/Guzzle/uri-template/src/');
$cosClient = new \Qcloud\Cos\Client([
'region' => 'ap-guangzhou',
'schema' => 'https',
'credentials' => [
'secretId' => 'AKIDxOo34sUu892lWFoEnFVYS9A58D84pa8X',
'secretKey' => 'IMDwjS5Xpwtc9WiV7dz95rTvHUbYJtSv'
]
]);
$localDir = __DIR__ . '/../server/public/uploads/goods';
$appStaticDir = __DIR__ . '/../yjyf-app/static/goods';
$files = glob($localDir . '/*.jpg');
$map = [];
foreach ($files as $file) {
$filename = basename($file);
$name = pathinfo($filename, PATHINFO_FILENAME);
$appFile = $appStaticDir . '/' . $filename;
copy($file, $appFile);
$cosKey = 'goods/' . $filename;
$body = file_get_contents($file);
try {
$cosClient->putObject([
'Bucket' => 'yjyf-1512102519',
'Key' => $cosKey,
'Body' => $body,
'ContentType' => 'image/jpeg'
]);
$cosUrl = 'https://yjyf-1512102519.cos.ap-guangzhou.myqcloud.com/' . $cosKey;
$map[$name] = [
'cos' => $cosUrl,
'local' => '/uploads/goods/' . $filename,
'static' => '/static/goods/' . $filename
];
echo "Uploaded {$filename} to COS -> {$cosUrl}\n";
} catch (\Throwable $e) {
echo "Error {$filename}: " . $e->getMessage() . "\n";
}
}
file_put_contents(__DIR__ . '/goods_images_map.json', json_encode($map, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
echo "All 31 real goods images synchronized to local, static and COS!\n";