添加bt与tracker交互
Change-Id: I1327c2ed89a76bee8e2abeb8cb3014b56357689a
diff --git a/src/main/java/com/pt/service/ResourceService.java b/src/main/java/com/pt/service/ResourceService.java
index 1d0e797..d85315e 100644
--- a/src/main/java/com/pt/service/ResourceService.java
+++ b/src/main/java/com/pt/service/ResourceService.java
@@ -6,16 +6,11 @@
import com.pt.repository.DownloadRepository;
import com.pt.repository.ResourceRepository;
import com.pt.repository.TorrentMetaRepository;
-import com.pt.utils.BencodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
import java.time.LocalDateTime;
import java.util.List;
-import java.util.Map;
@Service
public class ResourceService {
@@ -40,9 +35,11 @@
return resourceRepository.findByAuthor(username);
}
- // 发布资源时,将种子文件二进制数据保存到数据库
- public void publishResource(String name, String description, String author, double size) throws Exception {
- // 保存资源信息到数据库,包括种子文件的二进制数据
+ public void publishResource(String name, String description, String author, double size, byte[] torrentBytes) throws Exception {
+ // 解析并保存torrent元信息
+ TorrentMeta meta = torrentService.parseAndSaveTorrent(torrentBytes);
+
+ // 保存资源信息,并关联torrent信息
Resource resource = new Resource();
resource.setName(name);
resource.setDescription(description);
@@ -50,10 +47,8 @@
resource.setSize(size);
resource.setPublishTime(LocalDateTime.now());
- // 生成种子数据 byte[]
- byte[] torrentData = torrentService.generateTorrentBytes("uploads/" + name);
- resource.setTorrentData(torrentData);
-
+ resource.setTorrentData(torrentBytes);
+ // 这里可以保存torrent文件路径,或直接存数据库,依据你的设计
resourceRepository.save(resource);
}