我正在使用 S3 存储桶通过strapi-provider-upload-aws-s3插件存储静态资产。此外,我有一个通过 SSL 指向该存储桶的自定义域。基本上,https://my.domain.com/photo.jpg指向https://s3.amazonaws.com/my.domain.com/photo.jpg。有没有办法让插件知道这一点,以便在更新包含此类 URL 的字段之前自动将 URL 从s3.amazonaws.com/my.domain.com更改为仅my.domain.com?
如果无法通过简单的配置或仪表板做到这一点,有没有办法调整代码本身以合并此功能?如果是这样(我强烈希望有),应该走这条路,什么文件包含这种逻辑?
我遇到了同样的问题,但经过大量的研究,你可以做下一个:
首先使用自定义域的名称配置 S3 存储桶,例如:static.yourdomain.com
并将其设置为 S3 设置上的静态托管,然后在 strapi S3 提供程序的配置中放置下一个:
providerOptions: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID || '',
secretAccessKey: process.env.AWS_ACCESS_SECRET || '',
region: 'us-east-1',
endpoint: 'static.yourdomain.com',
s3BucketEndpoint: true,
params: {
Bucket: 'static.yourdomain.com'
},
}
在您的 DNS 中创建一个指向 s3 公共域的 CNAMEstatic.yourdomain.com
,但诀窍如下:
取而代之的是:
static.yourdomain.com.s3-website-us-east-1.amazonaws.com
把这个:
static.yourdomain.com.s3.amazonaws.com
我认为在您的情况下,最好的方法是更新插件上传本身(./plugins/upload)。 目前没有针对您需求的定制。
为此,您必须更新findAll
功能并在发送数据之前手动更换map
中的主机。
这是我所说的代码:https://github.com/strapi/strapi/blob/master/packages/strapi-plugin-upload/controllers/Upload.js#L122
您必须替换 url 以符合您的需要。