diff --git a/src/api/torrents.js b/src/api/torrents.js
index 8dd603d..1eb655c 100644
--- a/src/api/torrents.js
+++ b/src/api/torrents.js
@@ -1,9 +1,46 @@
 import request from "@/utils/request";
 
 export const uploadTorrent = (formData) => {
-  return request.post("/resource/publish", formData);
+  return request.post("/resource/publish", formData, {
+    headers: {
+      'Content-Type': 'multipart/form-data',
+    },
+  });
 };
 
 export const getTorrentList = (params) => {
-  return request.get("/list/all", { params });
+  return request.get("resource/list/all", { params });
+};
+
+export const getTorrentListByUser = (params) => {
+  return request.get("resource/list/user", { params });
+};
+
+export const getTorrentDetail = (id) => {
+  return request.get(`resource/get/${id}`);
+};
+
+export const downloadTorrent = (id, username) => {
+  return request.get(`/resource/download/${id}`, {
+    params: {
+      username: username,
+    },
+    responseType: 'blob', // 重要：指定响应类型为blob，用于文件下载
+  });
+};
+
+export const getTorrentInfo = ({id, username}) => {
+  return request.get(`/resource/get/${id}`, {
+    params: {
+      username: username,
+    },
+  });
+};
+
+export const deleteTorrent = (id) => {
+  return request.delete(`resource/delete/${id}`);
+};
+
+export const searchTorrent = (params) => {
+  return request.get("resource/search", { params });
 };
\ No newline at end of file
