Strapi-在将 AWS S3 作为我的文件上传提供商时遇到问题

ajo*_*209 7 javascript amazon-s3 node.js strapi

我按照 Strapi 网站上的说明进行操作:https://strapi.io/documentation/v3.x/plugins/upload.html#using-a-provider

这是我的plugin.js 文件,位于 ./config/plugins.js

module.exports = ({ env }) => ({
    upload: {
      provider: 'aws-s3',
      providerOptions: {
        accessKeyId: 'id',
        secretAccessKey: 'secret',
        region: 'us-east-1',
        params: {
          Bucket: 'bucket',
        },
      },
    }
  });
Run Code Online (Sandbox Code Playgroud)

我安装了 Strapi-provider-upload-aws-s3:

 "dependencies": {
    "knex": "<0.20.0",
    "pg": "^8.3.2",
    "sqlite3": "^5.0.0",
    "strapi": "3.1.4",
    "strapi-admin": "3.1.4",
    "strapi-connector-bookshelf": "3.1.4",
    "strapi-plugin-content-manager": "3.1.4",
    "strapi-plugin-content-type-builder": "3.1.4",
    "strapi-plugin-email": "3.1.4",
    "strapi-plugin-upload": "3.1.4",
    "strapi-plugin-users-permissions": "3.1.4",
    "strapi-provider-upload-aws-s3": "^3.1.4",
    "strapi-utils": "3.1.4"
  },
Run Code Online (Sandbox Code Playgroud)

但是,当我转到本地的管理页面然后转到插件时,我在媒体库插件中没有看到允许我更改设置的齿轮。

我被困在这里,所以我们将不胜感激。谢谢你!

Mar*_*ack 7

适用于 Strapi V3

Strapi 上传插件文档有错误。 https://docs.strapi.io/developer-docs/latest/plugins/upload.html#enabling-the-provider

根据他们的文档配置代码,我没有功能 S3 上传;它总是会在本地上传。

现在我的工作 S3 提供程序配置如下所示。本质上,您只需删除config: { }他们的文档指定的子包装器即可;看来不需要了。

这样,我就可以通过 Strapi 仪表板(插件/媒体库)上传媒体文件,这些文件将出现在我的 S3 中。其工作原理的另一个指标是它比本地上传需要更长的时间。上传 api 列表路由有效,并将我的文件 URL 显示为完整的 S3 URL。

配置/插件.js

upload: {
    provider: 'aws-s3',
    providerOptions: {
        accessKeyId: env('AWS_ACCESS_KEY_ID'),
        secretAccessKey: env('AWS_ACCESS_SECRET'),
        region:  env('AWS_REGION'),
        params: {
            Bucket: env('AWS_BUCKET')
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 上述配置对 [Strapi v3](https://docs-v3.strapi.io/developer-docs/latest/development/plugins/upload.html#using-a-provider) 有效,而链接中的配置与 [Strapi v4](https://docs.strapi.io/developer-docs/latest/plugins/upload.html#using-a-provider) 兼容。因此,您很可能尝试使用 v4 的配置来配置 Strapi v3 的插件。 (2认同)

ajo*_*209 1

将以下内容粘贴到路径 ~/extensions/upload/config/settings.json 对我有用:

{  
    "provider": "cloudinary",  
    "providerOptions": {
      "cloud_name": "Cloud Name",
      "api_key": "API Key",
      "api_secret": "Secret Key"  
   }
}
Run Code Online (Sandbox Code Playgroud)

我仍然看不到媒体库旁边的齿轮,但是当我上传图片时,我在我的 cloudinary 帐户中看到它。我真的希望他们尽快更新他们的文档。这给我带来了很多麻烦,我也见过其他一些人也遇到过这个问题。