Strapi对接Digital Ocean存储时媒体库图片URL生成错误
Strapi对接Digital Ocean Storage生成URL重复带https协议头修复方案
问题定位
你贴出的middleware.js安全策略配置不存在问题,不需要调整。该URL拼接错误的核心原因是上传插件的配置项格式不符合要求:strapi-provider-upload-dos插件内部会自动为资源路径拼接https://协议前缀,如果你在环境变量中配置的endpoint或cdn字段手动加了https://前缀,就会出现双重拼接,生成你看到的https://https//xxx格式的错误URL。
排查步骤
- 逐一核对项目中所有DO存储相关的环境变量实际加载值,重点检查
DO_SPACE_ENDPOINT、DO_SPACE_CDN两个字段 - 确认上述两个字段的取值没有携带
http://或https://前缀,同时字段末尾不要加多余的斜杠/错误配置示例:
DO_SPACE_CDN=https://jobsflow.xxx.digitaloceanspaces.com
正确配置要求:字段值只保留域名部分,不要带协议头
修复操作
- 修正环境变量配置,参考格式如下:
# 所有域名类配置均不要带https前缀 DO_SPACE_ACCESS_KEY=你的DO空间访问公钥 DO_SPACE_SECRET_KEY=你的DO空间访问私钥 DO_SPACE_ENDPOINT=对应区域的Digital Ocean Spaces端点,例如nyc3.digitaloceanspaces.com DO_SPACE_BUCKET=你的存储空间名,即你配置中的jobsflow DO_SPACE_DIRECTORY=文件存储子目录,没有则留空 DO_SPACE_CDN=你的CDN访问域名,例如jobsflow.nyc3.digitaloceanspaces.com
- 修正配置后重启Strapi服务,删除之前上传生成的错误媒体记录,重新上传文件即可生成正确格式的资源URL。
- 如果修正配置后仍存在路径拼接异常,检查本地安装的
strapi-provider-upload-dos版本,部分早期旧版本存在CDN路径拼接逻辑bug,升级到最新稳定版即可解决。
内容的提问来源于stack exchange,提问作者Freelancer BJR
相关产品推荐
相关产品推荐

