import React, { useState } from 'react'; import { useTusUpload } from '../hooks/useTusUpload'; export function DownloadTester() { const { serverUrl, getFileInfo } = useTusUpload(); const [fileId, setFileId] = useState('2025/05/28/1mVGC8r6jy'); const [testResults, setTestResults] = useState(null); const [loading, setLoading] = useState(false); const runTests = async () => { setLoading(true); const results: any = { fileId, serverUrl, timestamp: new Date().toISOString(), }; try { // 测试1: 检查资源信息 console.log('Testing resource info...'); const resourceInfo = await getFileInfo(fileId); results.resourceInfo = resourceInfo; // 测试2: 测试下载端点 console.log('Testing download endpoint...'); const downloadUrl = `${serverUrl}/download/${fileId}`; results.downloadUrl = downloadUrl; const response = await fetch(downloadUrl, { method: 'HEAD' }); results.downloadResponse = { status: response.status, statusText: response.statusText, headers: Object.fromEntries(response.headers.entries()), }; // 测试3: 测试API端点 console.log('Testing API endpoint...'); const apiUrl = `${serverUrl}/api/storage/resource/${fileId}`; results.apiUrl = apiUrl; const apiResponse = await fetch(apiUrl); const apiData = await apiResponse.json(); results.apiResponse = { status: apiResponse.status, data: apiData, }; } catch (error) { results.error = error instanceof Error ? error.message : String(error); } setTestResults(results); setLoading(false); }; return (

🔧 下载功能测试

setFileId(e.target.value)} className="flex-1 px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" />
{testResults && (

测试结果

							{JSON.stringify(testResults, null, 2)}
						
)}
); }