From 3714621173c606c4c58439ed8941100ce9ddea14 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 05 十一月 2025 15:10:49 +0800
Subject: [PATCH] bug
---
web/src/utils/cos-simple.ts | 192 ++++++++++++++++++++++++++++++++----------------
1 files changed, 128 insertions(+), 64 deletions(-)
diff --git a/web/src/utils/cos-simple.ts b/web/src/utils/cos-simple.ts
index 6f3e835..76fc4a5 100644
--- a/web/src/utils/cos-simple.ts
+++ b/web/src/utils/cos-simple.ts
@@ -1,65 +1,129 @@
-import axios from 'axios'
-
-// GraphQL鏌ヨ鑾峰彇涓婁紶鍑瘉
-const GET_UPLOAD_CREDENTIALS = `
- query GetUploadCredentials {
- getUploadCredentials {
- bucket
- region
- key
- presignedUrl
- expiration
- }
- }
-`
-
-// 浠庡悗绔疓raphQL鑾峰彇涓婁紶鍑瘉
-const getUploadCredentials = async () => {
- try {
- const response = await axios.post('http://localhost:8080/graphql', {
- query: GET_UPLOAD_CREDENTIALS
- })
-
- if (response.data.errors) {
- throw new Error(response.data.errors[0].message)
- }
-
- return response.data.data.getUploadCredentials
- } catch (error) {
- console.error('鑾峰彇涓婁紶鍑瘉澶辫触:', error)
- throw error
- }
-}
-
-/**
- * 浣跨敤棰勭鍚峌RL涓婁紶鏂囦欢鍒拌吘璁簯COS
- * @param file 瑕佷笂浼犵殑鏂囦欢
- * @returns Promise<string> 杩斿洖鏂囦欢鐨勮闂甎RL
- */
-export const uploadToCOS = async (file: File): Promise<string> => {
- try {
- // 鑾峰彇涓婁紶鍑瘉
- const credentials = await getUploadCredentials()
-
- // 浣跨敤棰勭鍚峌RL
- const uploadUrl = credentials.presignedUrl
-
- // 浣跨敤棰勭鍚峌RL涓婁紶鏂囦欢
- const uploadResponse = await axios.put(uploadUrl, file, {
- headers: {
- 'Content-Type': file.type,
- }
- })
-
- if (uploadResponse.status === 200) {
- // 杩斿洖鏂囦欢鐨勮闂甎RL锛堝幓鎺夋煡璇㈠弬鏁帮級
- const fileUrl = `https://${credentials.bucket}.cos.${credentials.region}.myqcloud.com/${credentials.key}`
- return fileUrl
- } else {
- throw new Error(`涓婁紶澶辫触锛岀姸鎬佺爜: ${uploadResponse.status}`)
- }
-
- } catch (error) {
- throw error
- }
+import axios from 'axios'
+import { serverUrl } from './appConfig.js'
+
+
+
+// GraphQL鏌ヨ鑾峰彇涓婁紶鍑瘉
+
+const GET_UPLOAD_CREDENTIALS = `
+
+ query GetUploadCredentials {
+
+ getUploadCredentials {
+
+ bucket
+
+ region
+
+ key
+
+ presignedUrl
+
+ expiration
+
+ }
+
+ }
+
+`
+
+
+
+// 浠庡悗绔疓raphQL鑾峰彇涓婁紶鍑瘉
+
+const getUploadCredentials = async () => {
+
+ try {
+
+ const response = await axios.post(`${serverUrl}/graphql`, {
+
+ query: GET_UPLOAD_CREDENTIALS
+
+ })
+
+
+ if (response.data.errors) {
+
+ throw new Error(response.data.errors[0].message)
+
+ }
+
+
+
+ return response.data.data.getUploadCredentials
+
+ } catch (error) {
+
+ console.error('鑾峰彇涓婁紶鍑瘉澶辫触:', error)
+
+ throw error
+
+ }
+
+}
+
+
+
+/**
+
+ * 浣跨敤棰勭鍚峌RL涓婁紶鏂囦欢鍒拌吘璁簯COS
+
+ * @param file 瑕佷笂浼犵殑鏂囦欢
+
+ * @returns Promise<string> 杩斿洖鏂囦欢鐨勮闂甎RL
+
+ */
+
+export const uploadToCOS = async (file: File): Promise<string> => {
+
+ try {
+
+ // 鑾峰彇涓婁紶鍑瘉
+
+ const credentials = await getUploadCredentials()
+
+
+
+ // 浣跨敤棰勭鍚峌RL
+
+ const uploadUrl = credentials.presignedUrl
+
+
+
+ // 浣跨敤棰勭鍚峌RL涓婁紶鏂囦欢
+
+ const uploadResponse = await axios.put(uploadUrl, file, {
+
+ headers: {
+
+ 'Content-Type': file.type,
+
+ }
+
+ })
+
+
+
+ if (uploadResponse.status === 200) {
+
+ // 杩斿洖鏂囦欢鐨勮闂甎RL锛堝幓鎺夋煡璇㈠弬鏁帮級
+
+ const fileUrl = `https://${credentials.bucket}.cos.${credentials.region}.myqcloud.com/${credentials.key}`
+
+ return fileUrl
+
+ } else {
+
+ throw new Error(`涓婁紶澶辫触锛岀姸鎬佺爜: ${uploadResponse.status}`)
+
+ }
+
+
+
+ } catch (error) {
+
+ throw error
+
+ }
+
}
\ No newline at end of file
--
Gitblit v1.8.0