// Logo上传测试脚本
|
import { uploadToCOS, getCOSConfig } from '../utils/cos'
|
|
/**
|
* 测试上传Logo文件到腾讯云COS
|
*/
|
export const testUploadLogo = async () => {
|
console.log('=== 开始Logo上传测试 ===')
|
|
try {
|
// 1. 检查COS配置
|
console.log('步骤1: 获取COS配置信息...')
|
const config = await getCOSConfig()
|
console.log('COS配置:', {
|
bucket: config.bucket,
|
region: config.region,
|
domain: config.domain
|
})
|
|
// 2. 获取Logo文件
|
console.log('步骤2: 获取Logo文件...')
|
const logoFile = await fetchLogoFile()
|
|
if (!logoFile) {
|
throw new Error('无法获取Logo文件')
|
}
|
|
console.log('Logo文件信息:', {
|
name: logoFile.name,
|
size: logoFile.size,
|
type: logoFile.type
|
})
|
|
// 3. 上传到COS
|
console.log('步骤3: 上传Logo到COS...')
|
const uploadUrl = await uploadToCOS(logoFile, 'avatars/')
|
|
console.log('✅ Logo上传成功!')
|
console.log('访问URL:', uploadUrl)
|
|
// 4. 验证上传结果
|
console.log('步骤4: 验证上传结果...')
|
const isAccessible = await verifyFileAccess(uploadUrl)
|
|
if (isAccessible) {
|
console.log('✅ 文件可正常访问')
|
} else {
|
console.log('⚠️ 文件访问验证失败,但上传可能成功')
|
}
|
|
console.log('=== Logo上传测试完成 ===')
|
|
return {
|
success: true,
|
url: uploadUrl,
|
config: config
|
}
|
|
} catch (error: any) {
|
console.error('❌ Logo上传测试失败:', error.message)
|
console.error('错误详情:', error)
|
|
return {
|
success: false,
|
error: error.message
|
}
|
}
|
}
|
|
/**
|
* 获取Logo文件
|
*/
|
async function fetchLogoFile(): Promise<File | null> {
|
try {
|
console.log('尝试从 /UI/logo.jpg 获取文件...')
|
const response = await fetch('/UI/logo.jpg')
|
|
if (!response.ok) {
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`)
|
}
|
|
const blob = await response.blob()
|
const file = new File([blob], 'logo.jpg', { type: 'image/jpeg' })
|
|
console.log('成功获取Logo文件:', {
|
size: file.size,
|
type: file.type
|
})
|
|
return file
|
|
} catch (error) {
|
console.error('获取Logo文件失败:', error)
|
return null
|
}
|
}
|
|
/**
|
* 验证文件是否可访问
|
*/
|
async function verifyFileAccess(url: string): Promise<boolean> {
|
try {
|
const response = await fetch(url, { method: 'HEAD' })
|
return response.ok
|
} catch (error) {
|
console.error('验证文件访问失败:', error)
|
return false
|
}
|
}
|
|
/**
|
* 在浏览器控制台中运行测试
|
*/
|
export const runLogoUploadTest = () => {
|
console.log('开始执行Logo上传测试...')
|
|
testUploadLogo()
|
.then(result => {
|
if (result.success) {
|
console.log('🎉 测试成功完成!')
|
console.log('Logo URL:', result.url)
|
|
// 可以将URL保存到localStorage供后续使用
|
localStorage.setItem('uploaded_logo_url', result.url!)
|
console.log('Logo URL已保存到localStorage')
|
|
} else {
|
console.log('❌ 测试失败:', result.error)
|
}
|
})
|
.catch(error => {
|
console.error('❌ 测试执行异常:', error)
|
})
|
}
|
|
// 导出到全局对象,方便在浏览器控制台中调用
|
if (typeof window !== 'undefined') {
|
(window as any).runLogoUploadTest = runLogoUploadTest
|
(window as any).testUploadLogo = testUploadLogo
|
}
|