当前位置: 首页 > 知识库问答 >
问题:

放大iOSSwift上的自定义配置错误

施彬彬
2023-03-14

我正试图将Amplify集成到我的项目中,但我在配置方面遇到了一些问题。后端将S3存储配置发送到我的项目,因此我必须使用接收到的数据配置Amplify。我尝试在测试后配置存储,但失败,出现以下错误:

PluginError: Unable to decode configuration
Recovery suggestion: Make sure the plugin configuration is JSONValue
  ▿ pluginConfigurationError : 3 elements
    - .0 : "Unable to decode configuration"
    - .1 : "Make sure the plugin configuration is JSONValue"
    - .2 : nil

这是我的代码:

func amplifyConfigure() {        
        do {
            Amplify.Logging.logLevel = .verbose
            
            try Amplify.add(plugin: AWSCognitoAuthPlugin())
            try Amplify.add(plugin: AWSS3StoragePlugin())

            let storageConfiguration = StorageCategoryConfiguration(
                        plugins: [
                            "awsS3StoragePlugin": [
                                "bucket": "bucket",
                                "region": "us-west-2",
                                "defaultAccessLevel": "protected"
                            ]
                        ]
                    )
            
            let amplifyConfiguration = AmplifyConfiguration(storage: storageConfiguration)
            try Amplify.configure(amplifyConfiguration)
            
            // LOG success.
        } catch {
            // LOG Error.
        }
    }

有人能帮我做这个自定义配置吗?谢谢

共有1个答案

巫化
2023-03-14

似乎由于某种原因,配置不能一次性直接声明,可能与类型有关。对我来说,如果我在多个步骤中声明它,它就会起作用。尝试替换以下内容:

let storageConfiguration = StorageCategoryConfiguration(
                        plugins: [
                            "awsS3StoragePlugin": [
                                "bucket": "bucket",
                                "region": "us-west-2",
                                "defaultAccessLevel": "protected"
                            ]
                        ]
                    )

与此:

var storageConfigurationJson : [String:JSONValue] = [ "awsS3StoragePlugin" : [] ]
storageConfigurationJson["awsS3StoragePlugin"] = ["bucket": "bucket",
                                                  "region": "us-west-2",
                                                  "defaultAccessLevel": "protected"]
let storageConfiguration = StorageCategoryConfiguration(plugins: storageConfigurationJson)

我只使用了扩增配置与AuthClass oryConfigance,所以在情况下StorageClass oryConfigance有不同的语法,你可能需要相应地调整我建议的代码

 类似资料:
  • MOSN 自定义配置说明。 本文是对 MOSN 自定义配置的说明。 Duration String 字符串,由一个十进制数字和一个时间单位后缀组成,有效的时间单位为 ns、us(或?s)、ms、s、m、h,例如 1h、3s、500ms。 metadata metadata 用于 MOSN 路由和 Cluster Host 之间的匹配。 { "filter_metadata":{ "mo

  • 如果你想自定义 Next.js 的高级配置,可以在根目录下新建next.config.js文件(与pages/ 和 package.json一起) 注意:next.config.js是一个 Node.js 模块,不是一个 JSON 文件,可以用于 Next 启动服务已经构建阶段,但是不作用于浏览器端。 // next.config.js module.exports = { /* config

  • 问题内容: 我有一个关于从自定义配置文件加载属性的问题。我尝试了两种不同的方式来加载文件,但我都无法正常工作,因此希望这里有人可以帮助我。 我尝试的第一种方法是将文件添加到conf目录中,并由此进行引用: 但这又回来了。 我尝试的第二种方法是添加: 到文件,然后在我的控制器中引用它,例如: 但是,这不能编译。 谁能说明我在这里做错了什么? 问题答案: 我不确定conf是否是类路径的一部分。因此,我

  • Gitea 引用 custom 目录中的自定义配置文件来覆盖配置、模板等默认配置。 如果从二进制部署 Gitea ,则所有默认路径都将相对于该 gitea 二进制文件;如果从发行版安装,则可能会将这些路径修改为Linux文件系统标准。Gitea 将会自动创建包括 custom/ 在内的必要应用目录,应用本身的配置存放在 custom/conf/app.ini 当中。在发行版中可能会以 /etc/g

  • Examples Custom babel configuration 为了扩展方便我们使用babel,可以在应用根目录新建.babelrc文件,该文件可配置。 如果有该文件,我们将会考虑数据源,因此也需要定义 next 项目需要的东西,也就是 next/babel预设。 这种设计方案将会使你不诧异于我们可以定制 babel 配置。 下面是.babelrc文件案例: { "presets":

  • Examples Custom webpack bundle analyzer 可以使用些一些常见的模块 @zeit/next-css @zeit/next-sass @zeit/next-less @zeit/next-preact @zeit/next-typescript 注意: webpack方法将被执行两次,一次在服务端一次在客户端。你可以用isServer属性区分客户端和服务端来配置