85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
使用浏览器Token测试OSS文件下载接口
|
|
请从浏览器开发者工具中复制Token
|
|
"""
|
|
|
|
import requests
|
|
|
|
# 配置
|
|
BASE_URL = "http://localhost:8080"
|
|
CLIENT_ID = "e5cd7e4891bf95d1d19206ce24a7b32e"
|
|
|
|
# 测试的OSS ID
|
|
TEST_OSS_IDS = [
|
|
1976838445737193474, # 2.png
|
|
1976861922200408066 # PDF文件
|
|
]
|
|
|
|
def test_oss_download(token, oss_id):
|
|
"""测试OSS下载接口"""
|
|
url = f"{BASE_URL}/resource/oss/download/{oss_id}"
|
|
headers = {
|
|
"Authorization": f"Bearer {token}",
|
|
"clientid": CLIENT_ID,
|
|
"referer": "http://localhost"
|
|
}
|
|
|
|
print(f"\n📥 测试下载 OSS ID: {oss_id}")
|
|
print(f"URL: {url}")
|
|
|
|
try:
|
|
response = requests.get(url, headers=headers, timeout=30, stream=True)
|
|
print(f"状态码: {response.status_code}")
|
|
print(f"Content-Type: {response.headers.get('Content-Type')}")
|
|
print(f"Content-Disposition: {response.headers.get('Content-Disposition')}")
|
|
print(f"Content-Length: {response.headers.get('Content-Length')}")
|
|
|
|
if response.status_code == 200:
|
|
content_length = len(response.content)
|
|
print(f"✅ 下载成功!文件大小: {content_length} bytes")
|
|
return True
|
|
elif response.status_code == 403:
|
|
print(f"❌ 403 Forbidden - 权限不足")
|
|
print(f"响应内容: {response.text}")
|
|
return False
|
|
elif response.status_code == 404:
|
|
print(f"❌ 404 Not Found - 文件不存在")
|
|
print(f"响应内容: {response.text}")
|
|
return False
|
|
else:
|
|
print(f"❌ 下载失败 ({response.status_code})")
|
|
print(f"响应内容: {response.text[:500]}")
|
|
return False
|
|
except Exception as e:
|
|
print(f"❌ 下载异常: {str(e)}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
return False
|
|
|
|
def main():
|
|
print("=" * 60)
|
|
print("OSS文件下载测试(使用浏览器Token)")
|
|
print("=" * 60)
|
|
print("\n请从浏览器开发者工具中复制Token(不包含Bearer前缀):")
|
|
print("1. 按F12打开开发者工具")
|
|
print("2. 进入Application/应用 -> Local Storage")
|
|
print("3. 找到 Admin-Token,复制其值")
|
|
print()
|
|
|
|
token = input("请输入Token: ").strip()
|
|
|
|
if not token:
|
|
print("❌ Token不能为空")
|
|
return
|
|
|
|
# 测试两个文件
|
|
for oss_id in TEST_OSS_IDS:
|
|
test_oss_download(token, oss_id)
|
|
print("-" * 60)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|