用Go实现 最简单实现 http文件服务器

使用go语言几行代码就实现了http文件服务器,不能再快了。https://download.csdn.net/my

 

package main

import (
	"fmt"
	"net/http"
)

func main() {
	fmt.Println("hello。。。。")

	http.Handle("/", http.FileServer(http.Dir(".")))
	http.ListenAndServe(":8080", nil)

}

编译生成main.exe  放到你想要的目录下。双击运行

浏览器输入:http://127.0.0.1:8080  效果来了

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gohttp是一个http文件服务器,因为是用go语言写的,所以加了一个go的抬头。之所以用go是因为发布起来是一个二进制文件,不同的平台都可以用,而且没有依赖问题,且稳定性也很好。    这个软件从很久以前就开始写了,第一次提交实在2015年的2月11号,作为组内存放公共文件的一个小软件。一开始的功能只有像 python -mSimpleHTTPServer 那种简单的功能。但是当我看到gotty这个软件的时候 ,意思到一个简单的软件竟然可以做到如此出色。之后这个http文件服务器就不断的被优化着,保持着简单易用的同时,开始赋予了它最强大的功能。    这个软件有很多的技术,隐藏在了其简易朴实的外表之下。请容我简单的介绍下pjax简称页面ajax技术        在gohttp进行目录却换的时候,你会看到地址栏在变,但是页面却是局部刷新的。各种文件的预览功能        所有常见的代码都可以直接在gohttp下预览,如果你用的是chrome浏览器的话,包括pdf,mp4,mp3都可以直接预览。实时的目录zip打包下载        强大的体现在它是实时的,即使你马上在目录下新增了一个文件,点击目录zip下载的时候,这个文件也会出现在里面。二维码的支持        手机下载往往没有电脑下载这么容易,点点鼠标就可以了。但是有了二维码,手机也只用扫一扫就可以下载了。苹果应用的在线安装        iphone应用安装包的扩展名是ipa,但是你还必须有个额外的plist文件才行。以及生成一个itms-services开头的地址,gohttp直接把这些工作都做了,ipa的解析,plist以及下载页面的自动生成。同普通文件一样,只需要点击右侧的生成二维码,然后用iphone手机扫描下,iphone的应用就安装到了你的手机上。PS:坑爹的苹果,就不能像安卓一样简单一点吗README文件的自动显示像github网站上的项目,readme文件都会作为项目的介绍自动显示出来。gohttp也借鉴了一下。如果目录下有readme文件的话,就会自动预览出来。文件上传简单文件上传也有着出色的表现,可以看到上传的进度,以及支持拖拽的方式上传文件。为了更方便的结合自动发布的功能,文件上传也有其相应的API,上传的时候也可是指定软件的版本号,存储结构参考了python,pypi官方的模式。还有很多很多其他的特性    http basic auth认证,不同文件不同的icon,gzip支持,目录的整合显示.... 还有很多功能等待着你去发现和有能力的你去补充。    截图  标签:gohttp
### 回答1: Go语言实现SSH协议转HTTP需要使用到Go语言的网络编程功能。首先,你需要连接到SSH服务器,然后使用Go语言的net包来实现网络通信。具体实现方法如下: 1. 安装并导入go-ssh库: ``` go get -u github.com/gliderlabs/ssh ``` 2. 实现SSH客户端: ``` package main import ( "fmt" "golang.org/x/crypto/ssh" ) func main() { config := &ssh.ClientConfig{ User: "username", Auth: []ssh.AuthMethod{ ssh.Password("password"), }, } client, err := ssh.Dial("tcp", "hostname:22", config) if err != nil { panic("Failed to dial: " + err.Error()) } session, err := client.NewSession() if err != nil { panic("Failed to create session: " + err.Error()) } defer session.Close() b, err := session.CombinedOutput("ls") if err != nil { panic("Failed to run: " + err.Error()) } fmt.Print(string(b)) } ``` 3. 将SSH协议转换为HTTP协议: ``` package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") }) err := http.ListenAndServe(":8080", nil) if err != nil { panic("ListenAndServe: " + err.Error()) } } ``` 上面的代码实现了一个简单HTTP服务器,它在本地的8080端口监听请求。你可以在此基础上修改代码,实现将SSH协议转换为HTTP协议的功能。 ### 回答2: 要用Go语言实现SSH协议转HTTP,我们可以使用Go语言的库来帮助我们完成这个过程。 首先,我们需要使用Go语言中的SSH库来建立SSH连接并执行命令。可以使用`golang.org/x/crypto/ssh`包。该库提供了SSH客户端的功能,可以使用它来与远程SSH服务器进行通信。 首先,我们需要建立SSH连接。可以使用`ssh.Dial`函数来建立SSH连接。你需要提供SSH服务器的地址、用户名和密码。成功建立连接后,你可以使用返回的`ssh.Client`对象。 接下来,我们需要执行SSH命令。可以使用`ssh.Session`对象来执行命令。你可以使用`session.Run`方法来执行命令,并将输出保存到变量中。 一旦我们获取了SSH命令的输出,我们可以使用Go语言的HTTP库来将其转换为HTTP响应。你可以创建一个HTTP处理函数,并在处理函数中执行SSH连接和命令执行的代码。然后,你可以使用`http.HandleFunc`函数将处理函数与HTTP路径绑定。 当收到HTTP请求时,处理函数会被调用,并执行SSH连接和命令执行。处理函数可以将SSH命令的输出转换为HTTP响应,并将其发送给客户端。 最后,我们需要将Go代码编译为可执行文件,并在服务器上运行该文件。在服务器上运行该可执行文件后,你可以通过HTTP访问相应的路径,从而实现SSH协议转换为HTTP的功能。 总结而言,要用Go语言实现SSH协议转HTTP,我们需要使用Go语言的SSH库来建立SSH连接并执行命令,并使用HTTP库将SSH命令的输出转换为HTTP响应。最后,我们将Go代码编译为可执行文件,并在服务器上运行该文件。这样,我们就可以通过HTTP访问相应的路径来实现SSH协议转HTTP的功能。 ### 回答3: 要使用Go语言来实现SSH协议转HTTP,可以考虑以下步骤: 1. 导入相应的Go语言库:Go语言有一些开源库可以用于实现SSH和HTTP,比如github.com/gliderlabs/ssh和net/http。可以使用go get命令来获取这些库。 2. 通过SSH建立到目标服务器的连接:使用SSH库创建一个SSH连接到目标服务器。可以指定用户名、密码或密钥来认证用户。 3. 在SSH连接上执行命令:使用SSH连接对象,在连接上执行相应的命令。这些命令可以是远程命令行中的任何有效命令。 4. 获取命令输出:通过SSH连接对象获取命令的输出。可以将输出存储在变量中以备后续使用。 5. 将命令输出转发到HTTP服务:使用HTTP库创建一个HTTP请求,将命令的输出作为请求的正文,并将请求发送到HTTP服务。 6. 处理HTTP响应:根据需要,可以在Go代码中处理HTTP响应。可以解析响应正文、检查响应状态码等。 7. 关闭连接:在完成后,关闭SSH连接。 需要注意的是,这只是一个基本的思路。根据具体的需求和细节,可能涉及更多的步骤和处理。Go语言的SSH和HTTP库提供了丰富的功能和接口,可以根据具体情况做更多的定制和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值