diff --git a/src/main/java/com/pt/controller/ResourceController.java b/src/main/java/com/pt/controller/ResourceController.java
index 3e3c875..306851a 100644
--- a/src/main/java/com/pt/controller/ResourceController.java
+++ b/src/main/java/com/pt/controller/ResourceController.java
@@ -25,6 +25,8 @@
 
     @Autowired
     private ResourceService resourceService;
+
+    @Autowired
     private UserService userService;
 
     @GetMapping("/list/all")
@@ -129,6 +131,30 @@
             return ResponseEntity.badRequest().body(ans);
         }
 
+        User user = userService.findByUsername(username);
+        if (user == null) {
+            ans.put("message", "User not found");
+            return ResponseEntity.status(404).body(ans);
+        }
+
+        final double MIN_SHARE_RATIO_THRESHOLD = 0.5; // 最低共享率要求
+        final long DOWNLOAD_EXEMPTION_BYTES = 20L * 1024L * 1024L * 1024L; // 20GB下载量豁免
+
+        long uploaded = user.getUploaded();
+        long downloaded = user.getDownloaded();
+
+        // 如果用户的下载量超过豁免值，则检查其共享率
+        if (downloaded > DOWNLOAD_EXEMPTION_BYTES) {
+            // 防止除以零
+            double shareRatio = (downloaded == 0) ? Double.MAX_VALUE : (double) uploaded / downloaded;
+            if (shareRatio < MIN_SHARE_RATIO_THRESHOLD) {
+                ans.put("message", "Share ratio is too low. Please seed more to improve your ratio before downloading new resources.");
+                ans.put("current_share_ratio", String.format("%.2f", shareRatio));
+                ans.put("required_share_ratio", MIN_SHARE_RATIO_THRESHOLD);
+                return ResponseEntity.status(403).body(ans); // 403 Forbidden
+            }
+        }
+
         Resource resource = resourceService.getResourceById(resourceId);
         byte[] file = resourceService.getTorrentFileByResource(resource, username);
         if (file == null) {
