[修复] 升级功能问题修复

This commit is contained in:
ryan
2026-03-12 19:16:20 +08:00
parent ae6d871046
commit 001f106b82
5 changed files with 137 additions and 17 deletions
+15 -13
View File
@@ -161,7 +161,15 @@ func UploadManualServerBinary(ctx context.Context, fileName string, reader io.Re
return nil, fmt.Errorf("缺少上传文件内容")
}
tempPath, err := persistUploadedServerBinary(fileName, reader)
execPath, err := os.Executable()
if err != nil {
return nil, fmt.Errorf("获取当前服务程序路径失败: %v", err)
}
if err = verifyExecutableDirectoryWritable(execPath); err != nil {
return nil, err
}
tempPath, err := persistUploadedServerBinary(filepath.Dir(execPath), fileName, reader)
if err != nil {
return nil, err
}
@@ -180,16 +188,6 @@ func UploadManualServerBinary(ctx context.Context, fileName string, reader io.Re
return info, nil
}
execPath, err := os.Executable()
if err != nil {
_ = os.Remove(tempPath)
return nil, fmt.Errorf("获取当前服务程序路径失败: %v", err)
}
if err = verifyExecutableDirectoryWritable(execPath); err != nil {
_ = os.Remove(tempPath)
return nil, err
}
uploadToken, err := newUpgradeToken()
if err != nil {
_ = os.Remove(tempPath)
@@ -712,12 +710,16 @@ func isManualServerUpgradeSupported(currentVersion string) bool {
return normalized != "" && !strings.EqualFold(normalized, "dev")
}
func persistUploadedServerBinary(fileName string, reader io.Reader) (string, error) {
func persistUploadedServerBinary(tempDir string, fileName string, reader io.Reader) (string, error) {
suffix := filepath.Ext(strings.TrimSpace(fileName))
if runtime.GOOS == "windows" && suffix == "" {
suffix = ".exe"
}
tempFile, err := os.CreateTemp("", "atsflare-server-manual-upgrade-*"+suffix)
tempDir = strings.TrimSpace(tempDir)
if tempDir == "" {
tempDir = os.TempDir()
}
tempFile, err := os.CreateTemp(tempDir, "atsflare-server-manual-upgrade-*"+suffix)
if err != nil {
return "", fmt.Errorf("创建临时升级文件失败: %v", err)
}