此覆盖由 OpenNext 使用,更具体地说是由图像服务器使用,以便能够从自定义源加载图像。图像不与图像服务器捆绑在一起,而是从覆盖中指定的源加载。
这仅用于内部图像(即没有主机的 src)。外部源已由图像服务器处理。
如果你想更好地了解如何实现自己的 ImageLoader,最简单的方法是查看现有的 内置 ImageLoader (opens in a new tab)。
内置 ImageLoader
s3
S3 ImageLoader 将从 S3 存储桶加载图像。如果你在配置中没有提供任何 ImageLoader,则默认使用它。
它使用 @aws-sdk/client-s3 与 S3 交互。
要求
- 你需要向服务器提供
BUCKET_KEY_PREFIX、BUCKET_NAME环境变量。
s3-lite
s3-lite ImageLoader 将从 S3 存储桶加载图像。它使用 aws4fetch 与 S3 交互。
要求
- 你需要向服务器提供
BUCKET_KEY_PREFIX、BUCKET_NAME环境变量。 - 也可以提供
BUCKET_REGION。它会回退到AWS_REGION??AWS_DEFAULT_REGION。这应该由 AWS 自动设置。你可以在 这里 (opens in a new tab) 阅读更多关于这在 AWS Lambdas 上如何工作的信息。
host
Host ImageLoader 将从主机加载图像。 此实现将直接从主机获取图像。
要求
主机应在请求的标头中提供,即在 X-Forwarded-Host 或 Host 标头中。
fs-dev
FsDev ImageLoader 是一个简单的实现,它从 .open-next/assets 文件夹加载图像并使用文件系统与之交互。它仅用于开发目的。
dummy
Dummy ImageLoader 是一个虚拟实现,它将抛出异常。不应使用它。