有几个可以模拟 Amazon S3 的本地服务或 Docker 解决方案。以下是一些流行的选项:

  1. MinIO:

    • 一个高性能的对象存储服务器,兼容 S3 API。

    • 可以本地运行或使用 Docker。

    • Docker 命令:

      Copy

      docker run -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address ":9001"

  2. LocalStack:

    • 模拟多个 AWS 服务的本地环境,包括 S3。

    • 提供 Docker 镜像。

    • Docker 命令:

      Copy

      docker run --rm -it -p 4566:4566 -p 4571:4571 localstack/localstack

  3. Fake S3:

    • 一个轻量级的 S3 模拟器,用 Ruby 编写。

    • 可以通过 Ruby gem 安装或使用 Docker。

    • Docker 命令:

      Copy

      docker run -p 4569:4569 lphoward/fake-s3

  4. S3ninja:

    • 另一个 S3 兼容的服务器实现。

    • 提供 Docker 镜像。

    • Docker 命令:

      Copy

      docker run -p 9000:9000 scireum/s3-ninja

  5. Zenko CloudServer:

    • 一个开源的多云数据控制器,兼容 S3 API。

    • 提供 Docker 镜像。

    • Docker 命令:

      Copy

      docker run -p 8000:8000 zenko/cloudserver

使用这些服务时,你通常需要配置你的 S3 客户端使用本地端点(如 http://localhost:9000)而不是 AWS 的端点。

对于大多数开发和测试目的,MinIO 或 LocalStack 是很好的选择,因为它们功能丰富且维护良好。选择哪个取决于你的具体需求,比如你是否只需要 S3 功能,还是需要模拟多个 AWS 服务。

在使用这些模拟服务时,记得在生产环境中切换回实际的 AWS S3 服务。本地模拟服务主要用于开发和测试目的。