添加 test_oss.php
This commit is contained in:
+171
@@ -0,0 +1,171 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* 阿里云 OSS 连接测试脚本
|
||||||
|
*
|
||||||
|
* 用于测试 OSS 配置是否正确
|
||||||
|
*/
|
||||||
|
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
ini_set('display_errors', 1);
|
||||||
|
|
||||||
|
echo "========================================\n";
|
||||||
|
echo "阿里云 OSS 连接测试\n";
|
||||||
|
echo "========================================\n\n";
|
||||||
|
|
||||||
|
// 加载配置
|
||||||
|
$config_file = __DIR__ . '/config.php';
|
||||||
|
if (file_exists($config_file)) {
|
||||||
|
require_once $config_file;
|
||||||
|
echo "✓ 配置文件加载成功\n\n";
|
||||||
|
} else {
|
||||||
|
echo "✗ 未找到配置文件 config.php\n";
|
||||||
|
echo " 请先运行 install_oss.sh 或手动创建配置文件\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查配置
|
||||||
|
echo "[1/5] 检查配置参数...\n";
|
||||||
|
$errors = array();
|
||||||
|
|
||||||
|
if (!isset($use_aliyun_oss)) {
|
||||||
|
$errors[] = "未定义 \$use_aliyun_oss";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($oss_config)) {
|
||||||
|
$errors[] = "未定义 \$oss_config";
|
||||||
|
} else {
|
||||||
|
if (empty($oss_config['access_key_id']) || $oss_config['access_key_id'] == 'YOUR_ACCESS_KEY_ID') {
|
||||||
|
$errors[] = "AccessKeyId 未配置或为默认值";
|
||||||
|
}
|
||||||
|
if (empty($oss_config['access_key_secret']) || $oss_config['access_key_secret'] == 'YOUR_ACCESS_KEY_SECRET') {
|
||||||
|
$errors[] = "AccessKeySecret 未配置或为默认值";
|
||||||
|
}
|
||||||
|
if (empty($oss_config['endpoint'])) {
|
||||||
|
$errors[] = "Endpoint 未配置";
|
||||||
|
}
|
||||||
|
if (empty($oss_config['bucket']) || $oss_config['bucket'] == 'your-bucket-name') {
|
||||||
|
$errors[] = "Bucket 未配置或为默认值";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($errors)) {
|
||||||
|
echo "✗ 配置检查失败:\n";
|
||||||
|
foreach ($errors as $error) {
|
||||||
|
echo " - $error\n";
|
||||||
|
}
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "✓ 配置参数检查通过\n\n";
|
||||||
|
|
||||||
|
// 检查 OSS SDK
|
||||||
|
echo "[2/5] 检查 OSS SDK...\n";
|
||||||
|
if (!isset($oss_sdk_path)) {
|
||||||
|
$oss_sdk_path = __DIR__ . '/vendor/autoload.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($oss_sdk_path)) {
|
||||||
|
echo "✗ OSS SDK 未安装\n";
|
||||||
|
echo " 请运行: composer require aliyuncs/oss-sdk-php\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once $oss_sdk_path;
|
||||||
|
|
||||||
|
if (!class_exists('OSS\OssClient')) {
|
||||||
|
echo "✗ OSS SDK 类不存在\n";
|
||||||
|
echo " 请确认 SDK 安装正确\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "✓ OSS SDK 已安装\n\n";
|
||||||
|
|
||||||
|
// 测试 OSS 连接
|
||||||
|
echo "[3/5] 测试 OSS 连接...\n";
|
||||||
|
|
||||||
|
try {
|
||||||
|
$ossClient = new OSS\OssClient(
|
||||||
|
$oss_config['access_key_id'],
|
||||||
|
$oss_config['access_key_secret'],
|
||||||
|
$oss_config['endpoint']
|
||||||
|
);
|
||||||
|
|
||||||
|
echo "✓ OSS 客户端创建成功\n\n";
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "✗ OSS 客户端创建失败\n";
|
||||||
|
echo " 错误信息: " . $e->getMessage() . "\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试 Bucket 访问
|
||||||
|
echo "[4/5] 测试 Bucket 访问...\n";
|
||||||
|
|
||||||
|
try {
|
||||||
|
$exists = $ossClient->doesBucketExist($oss_config['bucket']);
|
||||||
|
|
||||||
|
if ($exists) {
|
||||||
|
echo "✓ Bucket '{$oss_config['bucket']}' 存在且可访问\n\n";
|
||||||
|
} else {
|
||||||
|
echo "✗ Bucket '{$oss_config['bucket']}' 不存在\n";
|
||||||
|
echo " 请检查 Bucket 名称是否正确\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "✗ Bucket 访问测试失败\n";
|
||||||
|
echo " 错误信息: " . $e->getMessage() . "\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试文件操作
|
||||||
|
echo "[5/5] 测试文件操作...\n";
|
||||||
|
|
||||||
|
$testFile = 'oss_test_' . time() . '.txt';
|
||||||
|
$testContent = 'OSS 连接测试 - ' . date('Y-m-d H:i:s');
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 上传测试文件
|
||||||
|
$ossClient->putObject($oss_config['bucket'], $testFile, $testContent);
|
||||||
|
echo "✓ 文件上传成功\n";
|
||||||
|
|
||||||
|
// 读取测试文件
|
||||||
|
$content = $ossClient->getObject($oss_config['bucket'], $testFile);
|
||||||
|
if ($content == $testContent) {
|
||||||
|
echo "✓ 文件读取成功\n";
|
||||||
|
} else {
|
||||||
|
echo "✗ 文件内容不匹配\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除测试文件
|
||||||
|
$ossClient->deleteObject($oss_config['bucket'], $testFile);
|
||||||
|
echo "✓ 文件删除成功\n\n";
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "✗ 文件操作失败\n";
|
||||||
|
echo " 错误信息: " . $e->getMessage() . "\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示配置摘要
|
||||||
|
echo "========================================\n";
|
||||||
|
echo "测试完成!所有测试通过\n";
|
||||||
|
echo "========================================\n\n";
|
||||||
|
|
||||||
|
echo "配置摘要:\n";
|
||||||
|
echo " OSS 状态: " . ($use_aliyun_oss ? '已启用' : '未启用') . "\n";
|
||||||
|
echo " Endpoint: {$oss_config['endpoint']}\n";
|
||||||
|
echo " Bucket: {$oss_config['bucket']}\n";
|
||||||
|
echo " 使用 HTTPS: " . ($oss_config['use_ssl'] ? '是' : '否') . "\n";
|
||||||
|
echo " 使用内网: " . ($oss_config['use_internal'] ? '是' : '否') . "\n";
|
||||||
|
if (!empty($oss_config['prefix'])) {
|
||||||
|
echo " 路径前缀: {$oss_config['prefix']}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "\n";
|
||||||
|
echo "下一步:\n";
|
||||||
|
if (!$use_aliyun_oss) {
|
||||||
|
echo " 在 config.php 中设置 \$use_aliyun_oss = true 以启用 OSS\n";
|
||||||
|
}
|
||||||
|
echo " 访问 Tiny File Manager 开始使用\n";
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user