忘机山人
Amazon S3 是一种高可扩展、低延迟的对象存储服务,广泛用于存储和管理数据。尽管目前有多个工具来将 S3 与其他存储解决方案(如 Storage Gateway,EMRFS 或者 S3FS 等)集成,但今天我们介绍一个新的方法,通过使用 OpenList,将 S3 存储转换为 WebDAV,简化文件管理和访问。
本文将引导你通过 Docker Compose 启动 OpenList,并将其与 Amazon S3 配置,以便通过 WebDAV 协议进行访问。
首先,我们需要通过 Docker Compose 来启动 OpenList 服务。以下是一个示例 docker-compose.yml 配置文件:
services:
openlist:
image: "openlistteam/openlist:latest"
container_name: openlist
volumes:
- "./data:/opt/openlist/data"
ports:
- "5244:5244"
environment:
- PUID=0
- PGID=0
- UMASK=022
restart: unless-stopped
保存该配置后,使用以下命令启动 OpenList 容器:
docker-compose up -d
启动成功后,OpenList 的 Web 界面将在端口 5244 上可用。你可以通过浏览器访问 http://localhost:5244 进入管理界面。默认用户名为 admin,初始密码可以通过环境变量设置,或者在容器日志中查看。

我用的是 Orbstack,可以很方便的查看容器日志。如果你使用的是 Docker cli,也可以使用 docker logs 进行查看。

一开始,OpenList 容器没有绑定任何存储,所以页面将显示为空白。此时需要点击右下角的“管理”按钮,进入存储配置界面。

/s3),这相当于 Linux 系统中的挂载目录。
s3.ap-northeast-1.amazonaws.com 作为 endpoint。如果你的存储桶位于其他区域,记得修改为相应区域的 endpoint。
为了方便获取你的 AWS 凭证,可以使用以下命令获取当前机器绑定的凭证:
pip install awsx
如果你使用 uv 管理 Python 环境,可以运行以下命令打印当前用户名和使用的 Access Key 以及 Secret Key:
uvx awsx

与许多 SDK 的重定向机制不同,如果你在配置中错误地设置了美东区的 endpoint,OpenList 客户端将不会自动在收到 301 重定向响应后转发请求到正确的区域,而是会报错。
例如,如果你将 endpoint 设置为 s3.us-east-1.amazonaws.com,但存储桶位于 ap-northeast-1 区域,你将遇到以下错误:
BucketRegionError: incorrect region, the bucket is not in 'ap-northeast-1' region at endpoint 's3.us-east-1.amazonaws.com'

解决方法是确保在配置中使用正确的区域,避免跨区域错误。
为了提高安全性,尤其是在将 OpenList 部署到公网环境时,建议启用多重身份验证(MFA)。启用 MFA 可以增加 AWS 账户的安全性,避免潜在的安全风险。
在 AWS 控制台中启用 MFA 后,记得更新 OpenList 中的凭证配置,确保启用了双重认证。

OpenList 默认情况下将用户权限设置为只读。要赋予 admin 用户 WebDAV 的管理权限,请进入“用户 - 编辑”界面,修改相应的权限设置。

完成配置后,OpenList 将自动同步 S3 存储桶的数据。你可以在 Web 界面上方便地进行文件下载、解压、上传文件等操作。

这个是 S3 上页面,可以看到 s3 的数据都被同步到 Openlist 上了。

同时也能够在 Openlist 上在线观看 S3 上的存的视频教程。

同时所有操作都可以通过 WebDAV 协议进行,访问路径为:
http(s)://<ip>/dav
例如,在 MacOS 上,可以通过 Finder 进行 WebDAV 访问:
http://localhost:5244/dav。
在 Finder 中使用 WebDAV 进行访问:

你还可以使用 Linux 命令行来操作 WebDAV,减少了学习 S3 命令行的成本。

通过使用 OpenList,我们可以轻松地将 Amazon S3 转换为 WebDAV,简化了文件访问和管理。通过本文的步骤,你可以快速启动 OpenList、配置 S3 存储桶,并通过 WebDAV 协议访问存储在 S3 上的文件。希望这篇文章能帮助你更高效地管理 S3 数据,并为你提供更加便捷的文件访问方式。
评论
0暂无评论