添加 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