在 Strapi v4 中出错 Google 云存储路径
Getting wrong Google Cloud Storage path in Strapi v4
目前我正在上传一些文件。将文件上传到 Google Cloud Storage 时成功,但是在获取文件时,出现类似这样的错误
如果我查看详细信息,来源是错误的,例如正确的link应该是这样的https://storage.cloud.google.com/cms-strapi-storage/thumbnail_cloudsql_ae61374abd/thumbnail_cloudsql_ae61374abd.png
谁能帮帮我?谢谢
我的参考和包来自这个来源:https://www.npmjs.com/package/strapi-provider-upload-google-cloud-storage#setup-auth
问题已经解决!
解决这个问题的方法是
- 因为环境是生产模式,在 Strapi v4 中,您应该将所有文件创建到
config/env/production
- 创建文件
plugins.js
,像这样填写。
const fs = require('fs');
require('dotenv').config();
module.exports = ({ env }) => ({
upload: {
config: {
provider: 'strapi-provider-upload-google-cloud-storage',
providerOptions: {
serviceAccount: JSON.parse(fs.readFileSync(process.env.GCS_SERVICE_ACCOUNT)),
bucketName: env('GCS_BUCKET_NAME'),
basePath: env('GCS_BASE_PATH'),
baseUrl: env('GCS_BASE_URL'),
publicFiles: true,
uniform: false,
gzip: true,
},
},
},
});
关键是 publicFiles
,因为如果值为 false,它不会在 Google Cloud Storage 中创建 public url,我们无法获取和查看图像
- 补充说明,不要忘记添加安全性以便获得 GCS(Google 云存储)的权限
module.exports = [
'strapi::errors',
{
name: 'strapi::security',
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
'connect-src': ["'self'", 'https:'],
'img-src': ["'self'", 'data:', 'blob:', 'storage.googleapis.com'],
'media-src': ["'self'", 'data:', 'blob:', 'storage.googleapis.com'],
upgradeInsecureRequests: null,
},
},
},
},
'strapi::cors',
'strapi::poweredBy',
'strapi::logger',
'strapi::query',
'strapi::body',
'strapi::favicon',
'strapi::public',
];
目前我正在上传一些文件。将文件上传到 Google Cloud Storage 时成功,但是在获取文件时,出现类似这样的错误
如果我查看详细信息,来源是错误的,例如正确的link应该是这样的https://storage.cloud.google.com/cms-strapi-storage/thumbnail_cloudsql_ae61374abd/thumbnail_cloudsql_ae61374abd.png
谁能帮帮我?谢谢
我的参考和包来自这个来源:https://www.npmjs.com/package/strapi-provider-upload-google-cloud-storage#setup-auth
问题已经解决!
解决这个问题的方法是
- 因为环境是生产模式,在 Strapi v4 中,您应该将所有文件创建到
config/env/production
- 创建文件
plugins.js
,像这样填写。
const fs = require('fs');
require('dotenv').config();
module.exports = ({ env }) => ({
upload: {
config: {
provider: 'strapi-provider-upload-google-cloud-storage',
providerOptions: {
serviceAccount: JSON.parse(fs.readFileSync(process.env.GCS_SERVICE_ACCOUNT)),
bucketName: env('GCS_BUCKET_NAME'),
basePath: env('GCS_BASE_PATH'),
baseUrl: env('GCS_BASE_URL'),
publicFiles: true,
uniform: false,
gzip: true,
},
},
},
});
关键是 publicFiles
,因为如果值为 false,它不会在 Google Cloud Storage 中创建 public url,我们无法获取和查看图像
- 补充说明,不要忘记添加安全性以便获得 GCS(Google 云存储)的权限
module.exports = [
'strapi::errors',
{
name: 'strapi::security',
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
'connect-src': ["'self'", 'https:'],
'img-src': ["'self'", 'data:', 'blob:', 'storage.googleapis.com'],
'media-src': ["'self'", 'data:', 'blob:', 'storage.googleapis.com'],
upgradeInsecureRequests: null,
},
},
},
},
'strapi::cors',
'strapi::poweredBy',
'strapi::logger',
'strapi::query',
'strapi::body',
'strapi::favicon',
'strapi::public',
];