| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #!/usr/bin/env node
- /**
- * 头像上传调试脚本
- * 用于测试MinIO连接和文件上传策略
- */
- const fs = require('fs');
- const path = require('path');
- // 模拟环境变量
- process.env.MINIO_HOST = 'localhost';
- process.env.MINIO_PORT = '9000';
- process.env.MINIO_USE_SSL = 'false';
- process.env.MINIO_ACCESS_KEY = 'minioadmin';
- process.env.MINIO_SECRET_KEY = 'minioadmin';
- process.env.MINIO_BUCKET_NAME = 'd8dai';
- // 测试MinIO连接
- const { Client } = require('minio');
- async function testMinIOConnection() {
- console.log('=== 测试MinIO连接 ===');
-
- const minioClient = new Client({
- endPoint: process.env.MINIO_HOST,
- port: parseInt(process.env.MINIO_PORT),
- useSSL: false,
- accessKey: process.env.MINIO_ACCESS_KEY,
- secretKey: process.env.MINIO_SECRET_KEY
- });
- try {
- const exists = await minioClient.bucketExists(process.env.MINIO_BUCKET_NAME);
- console.log(`✅ MinIO连接成功,存储桶 ${process.env.MINIO_BUCKET_NAME} 存在: ${exists}`);
-
- if (!exists) {
- await minioClient.makeBucket(process.env.MINIO_BUCKET_NAME);
- console.log(`✅ 创建存储桶: ${process.env.MINIO_BUCKET_NAME}`);
- }
-
- return true;
- } catch (error) {
- console.error('❌ MinIO连接失败:', error.message);
- return false;
- }
- }
- // 测试上传策略API
- async function testUploadPolicyAPI() {
- console.log('\n=== 测试上传策略API ===');
-
- try {
- const response = await fetch('http://localhost:8080/api/v1/files/upload-policy', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- 'Authorization': 'Bearer test-token' // 注意:需要有效的token
- },
- body: JSON.stringify({
- filename: 'test-avatar.jpg',
- contentType: 'image/jpeg',
- size: 1024
- })
- });
- console.log(`API响应状态: ${response.status}`);
-
- if (response.ok) {
- const data = await response.json();
- console.log('✅ 上传策略获取成功:', JSON.stringify(data, null, 2));
- } else {
- const error = await response.json();
- console.error('❌ 上传策略获取失败:', error);
- }
- } catch (error) {
- console.error('❌ API测试失败:', error.message);
- }
- }
- // 主函数
- async function main() {
- console.log('开始头像上传调试...\n');
-
- const minioOk = await testMinIOConnection();
- if (minioOk) {
- await testUploadPolicyAPI();
- }
-
- console.log('\n=== 调试完成 ===');
- }
- if (require.main === module) {
- main().catch(console.error);
- }
- module.exports = { testMinIOConnection, testUploadPolicyAPI };
|