大量的更新
This commit is contained in:
43
agent-wdd/op/DownloadExecutor.go
Normal file
43
agent-wdd/op/DownloadExecutor.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package op
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
func DownloadFile(url string, path string) (bool, string) {
|
||||
// 创建HTTP客户端
|
||||
client := &http.Client{
|
||||
Timeout: 5 * time.Second,
|
||||
}
|
||||
|
||||
// 发送GET请求
|
||||
resp, err := client.Get(url)
|
||||
if err != nil {
|
||||
return false, fmt.Sprintf("下载文件失败: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// 检查响应状态码
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return false, fmt.Sprintf("下载文件失败,HTTP状态码: %d", resp.StatusCode)
|
||||
}
|
||||
|
||||
// 创建目标文件
|
||||
out, err := os.Create(path)
|
||||
if err != nil {
|
||||
return false, fmt.Sprintf("创建文件失败: %v", err)
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
// 将响应内容写入文件
|
||||
_, err = io.Copy(out, resp.Body)
|
||||
if err != nil {
|
||||
return false, fmt.Sprintf("写入文件失败: %v", err)
|
||||
}
|
||||
|
||||
return true, fmt.Sprintf("文件下载成功: %s", path)
|
||||
}
|
||||
Reference in New Issue
Block a user