io.Readerio.Readerwww.baidu.comhttp://localhost:8080/

通过这篇文章你可以学到:

  1. 托管一个静态文件
  2. 托管一个目录
  3. 如何实现FTP服务器效果
  4. 自定义托管内容类型
  5. 托管一个Reader
  6. 静态文件托管原理分析
  7. Gin是如何禁止目录列表的
  8. 镜像百度网站
  9. 封装一个直接拿来用的镜像服务代理
  10. 多域名API服务聚合(API 网关?),解决CROS跨域问题

托管一个静态文件

StaticFile
StaticFile/tmp/adobegc.log/adobegc.loghttp://localhost:8080/adobegc.log
Content-Type
StaticFile

托管一个目录

Static
Static
http://localhost:8080/static/adobegc.logadobegc.loghttp://localhost:8080/adobegc.log

实现一个FTP服务器

http://localhost:8080/static/
http://localhost:8080/static//tmp/
StaticFS/static1
gin.Dirtrue
http://localhost:8080/static1/

自定义托管内容类型

以上的示例都是托管一个静态文件或者目录,我们并没有太多的自定义能力,比如设置内容类型,托管一个文件的部分内容等等。

Dataadobegc.log
c.Data
contentTypedata

功能更强大的Reader托管。

[]byteio.ReaderDataFromReader

从上面的方法签名我们可以看到我们可以自定义的内容:

  1. 要显示的内容长度
  2. 内容的类型
  3. 一个内容源Reader
  4. 响应的头信息extraHeaders
Data

基于源代码分析原理

localhost:8080
StaticFile

剩余更多6000字大章,请访问

精彩文章推荐

flysnow_org