81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
|
|
"""
|
||
|
|
测试 OSS URL 生成修复
|
||
|
|
"""
|
||
|
|
import os
|
||
|
|
import sys
|
||
|
|
|
||
|
|
# 添加 lover 目录到路径
|
||
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'lover'))
|
||
|
|
|
||
|
|
from lover.config import settings
|
||
|
|
from lover.oss_utils import test_oss_connection, upload_audio_file, delete_audio_file
|
||
|
|
import logging
|
||
|
|
|
||
|
|
logging.basicConfig(level=logging.INFO)
|
||
|
|
logger = logging.getLogger(__name__)
|
||
|
|
|
||
|
|
def test_url_generation():
|
||
|
|
"""测试 URL 生成是否正确"""
|
||
|
|
print("=" * 60)
|
||
|
|
print("测试 OSS URL 生成")
|
||
|
|
print("=" * 60)
|
||
|
|
|
||
|
|
# 显示配置
|
||
|
|
print(f"\n📋 当前配置:")
|
||
|
|
print(f" Bucket: {settings.ALIYUN_OSS_BUCKET_NAME}")
|
||
|
|
print(f" Endpoint: {settings.ALIYUN_OSS_ENDPOINT}")
|
||
|
|
print(f" CDN Domain: {settings.ALIYUN_OSS_CDN_DOMAIN}")
|
||
|
|
print(f" AccessKeyId: {settings.ALIYUN_OSS_ACCESS_KEY_ID[:8]}***")
|
||
|
|
|
||
|
|
# 测试连接
|
||
|
|
print(f"\n🔌 测试 OSS 连接...")
|
||
|
|
if not test_oss_connection():
|
||
|
|
print("❌ OSS 连接失败")
|
||
|
|
return False
|
||
|
|
|
||
|
|
print("✅ OSS 连接成功")
|
||
|
|
|
||
|
|
# 创建测试音频数据
|
||
|
|
print(f"\n📤 测试文件上传...")
|
||
|
|
test_audio = b"test audio data" * 100 # 简单的测试数据
|
||
|
|
|
||
|
|
try:
|
||
|
|
file_url = upload_audio_file(test_audio, "mp3")
|
||
|
|
print(f"✅ 文件上传成功")
|
||
|
|
print(f"📍 生成的 URL: {file_url}")
|
||
|
|
|
||
|
|
# 验证 URL 格式
|
||
|
|
if file_url.startswith('https://') or file_url.startswith('http://'):
|
||
|
|
print("✅ URL 格式正确(包含协议)")
|
||
|
|
else:
|
||
|
|
print(f"❌ URL 格式错误: {file_url}")
|
||
|
|
return False
|
||
|
|
|
||
|
|
# 验证 URL 结构
|
||
|
|
if settings.ALIYUN_OSS_BUCKET_NAME in file_url:
|
||
|
|
print("✅ URL 包含 Bucket 名称")
|
||
|
|
else:
|
||
|
|
print(f"⚠️ URL 不包含 Bucket 名称")
|
||
|
|
|
||
|
|
# 清理测试文件
|
||
|
|
print(f"\n🗑️ 清理测试文件...")
|
||
|
|
if delete_audio_file(file_url):
|
||
|
|
print("✅ 测试文件已删除")
|
||
|
|
else:
|
||
|
|
print("⚠️ 测试文件删除失败(可能需要手动清理)")
|
||
|
|
|
||
|
|
print(f"\n" + "=" * 60)
|
||
|
|
print("🎉 OSS URL 生成测试通过!")
|
||
|
|
print("=" * 60)
|
||
|
|
return True
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
print(f"❌ 测试失败: {e}")
|
||
|
|
import traceback
|
||
|
|
traceback.print_exc()
|
||
|
|
return False
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
success = test_url_generation()
|
||
|
|
sys.exit(0 if success else 1)
|