我正在使用S3存储桶通过 strapi-provider-upload-aws-s3 插件存储静态资产。另外,我有一个通过SSL指向该存储桶的自定义域。基本上, https://my.domain.com/photo.jpg 指向 https://s3.amazonaws.com/my.domain.com/photo.jpg 。有什么办法可以让插件知道这一点,以便它可以将URL从 s3.amazonaws.com/my.domain.com 自动更改为 my.domain.com 更新包含此类URL的字段?
如果通过简单的配置或仪表板无法做到这一点,是否有任何方法可以调整代码本身以包含此功能?如果是这样(我非常希望有),那么哪个文件应该拥有这种逻辑?
答案 0 :(得分:1)
我遇到了同样的问题,但是经过大量的研究,您可以执行下一个操作:
首先用您的自定义域的名称配置一个S3存储桶,例如:static.yourdomain.com
,并在S3设置上将其设置为“静态主机”,然后在您对trapi 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公共域的CNAME static.yourdomain.com
,但技巧如下:
代替此:
static.yourdomain.com.s3-website-us-east-1.amazonaws.com
输入:
static.yourdomain.com.s3.amazonaws.com
答案 1 :(得分:0)
我认为在您的情况下,最好的方法是更新插件本身(./plugins/upload)。 当前没有您需要的自定义。
为此,您必须更新findAll
功能并在map
中手动替换主机,然后再发送数据。
您将不得不替换该URL以匹配您的需求。