#截图 #chrome #chromedriver #redis

已删除 网站截图

📸 网站截图服务

1.0.0 2022年5月4日
0.1.1 2022年4月26日
0.1.0 2022年4月25日

#截图 中排名第 5

MIT/ApacheGPL-3.0-or-later

38KB
714

website-screenshot

Rust: 1.62+ Continuous Delivery Continuous Integration

📸 网站截图服务

特性

部署

先决条件

环境变量

  • PORT - 应用程序运行端口(可选,默认为 3000
  • REDIS_URL - 您的 Redis 数据库地址(必需)
  • FULLSCREEN_SCREENSHOT - 如果设置,则将截图整个网站(可选)

Railway

Deploy on Railway

更改提供商

要在 railway 中更改提供商

  1. 打开 railway 为您创建的仓库。
  2. 打开 Dockerfile
  3. 将第 39 行和第 44 行更改为 fleet build --release --no-default-features -<your_provider>
  4. 重新部署您的应用程序。

预构建的二进制文件

⚠️- 在使用预构建的二进制文件时,无法更改提供商。

Linux

curl -fsSL https://raw.githubusercontent.com/devtomio/website-screenshot/main/install.sh

其他

请参阅此仓库的 发布页面 并下载相应的二进制文件。

Docker

⚠️- 在使用 docker 镜像时,无法更改提供商。

此应用程序的 docker 化版本可在 此处 获取。

Cargo

website-screenshot 作为 crate 安装。

cargo install website-screenshot

从源代码构建

  1. 克隆此仓库。例如:git clone https://github.com/devtomio/website-screenshot
  2. 构建二进制文件:cargo build --release

身份验证

如果设置了 AUTH_TOKEN 变量,则将启用身份验证。

它将检查用户发送的 Authorization 标头是否与您设置的 AUTH_TOKEN 相等。

存储提供商

Fs (文件系统) 提供商

📝 - 这是默认提供商。

构建命令

cargo build --release

Cloudinary 提供商

📝 - 您必须创建一个未签名的上传预设。

环境变量

  • CLOUDINARY_API_KEY - 您的 API 密钥(必需)
  • CLOUDINARY_UPLOAD_PRESET - 您未签名的上传预设名称(必需)
  • CLOUDINARY_CLOUD_NAME - 注册期间设置的云名称(必需)

构建命令

cargo build --release --no-default-features --features cloudinary_provider

Amazon AWS S3 提供商

⚠️ - 这尚未测试。如果遇到错误,请毫不犹豫地提交问题。

环境变量

  • S3_BUCKET_NAME - 您的 S3 桶名称(必需)
  • S3_REGION - 您的 S3 桶区域(必需,如果使用 自托管 S3 则为可选)
  • S3_ACCESS_KEY - 您的访问密钥(必需)
  • S3_SECRET_KEY - 您的秘密密钥(必需)
  • S3_SECURITY_TOKEN - 您的安全令牌(可选)
  • S3_SESSION_TOKEN - 您的会话令牌(可选)

自托管 S3 存储

要使用自托管 S3 存储,请将 S3_ENDPOINT_URL 环境变量设置为端点 URL。

构建命令

cargo build --release --no-default-features --features s3_provider

Tixte 提供商

环境变量

  • TIXTE_UPLOAD_KEY - 您的上传密钥,可在集成标签页找到(必需)
  • TIXTE_DOMAIN_CONFIG - 是否使用随机域名或特定域名(必需,只能为 standardrandom
  • TIXTE_CUSTOM_DOMAIN - 要使用的特定域名(仅在 TIXTE_DOMAIN_CONFIG 设置为 standard 时必需)

构建命令

cargo build --release --no-default-features --features tixte_provider

Sled 提供商

环境变量

  • SLED_PATH - 打开 sled 数据库时要提供的路径(可选,默认为 .website-screenshot

构建命令

cargo build --release --no-default-features --features sled_provider

端点

GET /

你好,世界!

示例响应

Hello, world!

POST /screenshot

创建截图。

包含 url 键的 JSON 负载。

示例负载

{
  "url": "https://rust-lang.net.cn" 
}

示例响应

{
  "slug": "abcdefghijk",
  "path": "/s/abcdefghijk",
  "metadata": {
    "url": "https://rust-lang.net.cn"
  }
}

GET /s/:slug

获取与 slug 对应的截图。

示例 URL

https://127.0.0.1:3000/s/abcdefghijk

示例响应

Rust Website

许可证

根据以下任一许可证授权

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在本作品中的任何贡献,都将按照上述方式双许可,没有任何附加条款或条件。

贡献者 ✨

感谢这些出色的人们(《emoji key》)


Tomio

💻 📖 🚇 🚧

本项目遵循all-contributors规范。欢迎各种形式的贡献!

依赖项

~35–50MB
~1M SLoC