random-api-go/readme.md
wood chen 96f41e374f refactor(main, logging, utils): Refactor logging and IP extraction logic
Move setupLogging to logging package and create GetRealIP utility function
2024-10-26 15:46:00 +08:00

2.4 KiB
Raw Blame History

Random API

一些介绍: https://q58.org/t/topic/127

Random API 是一个用 Go 语言编写的简单而强大的随机图片/视频 API 服务。它允许用户通过配置文件轻松管理和提供随机媒体内容。

特性

  • 动态加载和缓存 CSV 文件内容
  • 支持图片和视频随机分发
  • 可自定义的 URL 路径配置
  • Docker 支持,便于部署和扩展
  • 详细的日志记录

快速开始

使用 Docker Compose

  1. 克隆仓库:

    git clone https://github.com/yourusername/random-api.git
    cd random-api
    
  2. 创建并编辑 public/url.json 文件来配置你的 URL 路径。

  3. 启动服务:

    docker-compose up -d
    
  4. 访问 http://localhost:5003 来使用 API。

手动运行

  1. 确保你已安装 Go 1.21 或更高版本。

  2. 克隆仓库并进入项目目录。

  3. 运行以下命令:

    go mod download
    go run main.go
    
  4. 服务将在 http://localhost:5003 上运行。

配置

url.json

public/url.json 文件中配置你的 URL 路径和对应的 CSV 文件:

{
  "pic": {
    "example": "https://example.com/pics.csv"
  },
  "video": {
    "example": "https://example.com/videos.csv"
  }
}

CSV 文件

CSV 文件应包含每行一个 URL。例如

https://example.com/image1.jpg
https://example.com/image2.jpg
https://example.com/image3.jpg

API 使用

访问 /pic/example/video/example 将重定向到相应 CSV 文件中的随机 URL。

推荐的nginx反代配置

location ^~ / {
    proxy_pass http://127.0.0.1:5003; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_http_version 1.1; 
    add_header X-Cache $upstream_cache_status; 
    add_header Cache-Control no-cache; 
    proxy_ssl_server_name off; 
    add_header Strict-Transport-Security "max-age=31536000"; 
}

日志

日志文件位于 /root/data/server.log。使用 Docker Compose 时,可以通过卷挂载访问日志。

贡献

欢迎贡献!请提交 pull request 或创建 issue 来提出建议和报告 bug。

许可

MIT License