es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Amplificar el error de configuración personalizada en iOS Swift.

Estoy tratando de integrar Amplify en mi proyecto, pero estoy teniendo algunos problemas con la configuración.
El backend está enviando la configuración de almacenamiento S3 a mi proyecto, así que debo configurar Amplify con los datos recibidos.
Intenté configurar el almacenamiento siguiendo esta prueba, pero está fallando con el siguiente error:

PluginError: No se puede decodificar la configuración
Sugerencia de recuperación: asegúrese de que la configuración del complemento sea JSONValue
▿ pluginConfigurationError : 3 elementos
– .0 : "No se puede decodificar la configuración"
– .1 : "Asegúrese de que la configuración del complemento sea JSONValue"
– .2 : nil

Este es mi código:

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.
    }
}

¿Puede alguien ayudarme con esta configuración personalizada?
¡Gracias!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución

    El mensaje de error sugiere que la configuración del plugin no está en el formato correcto, que debe ser un JSONValue. Puede intentar convertir el diccionario storageConfiguration en un JSONValue usando el método JSONValue.from. Aquí hay una versión actualizada de su código:

    func amplifyConfigure() {
        do {
            Amplify.Logging.logLevel = .verbose
    
            try Amplify.add(plugin: AWSCognitoAuthPlugin())
            try Amplify.add(plugin: AWSS3StoragePlugin())
    
            let storageConfiguration: JSONValue = try JSONValue.from([
              "plugins": [
                "awsS3StoragePlugin": [
                  "bucket": "bucket",
                  "region": "us-west-2",
                  "defaultAccessLevel": "protected"
                ]
              ]
            ])
    
            let amplifyConfiguration = AmplifyConfiguration(storage: storageConfiguration)
            try Amplify.configure(amplifyConfiguration)
    
            // Registro de éxito.
        } catch {
            // Registro de error.
        }
    }
    

    En esta versión, estamos utilizando el método JSONValue.from para convertir el diccionario storageConfiguration, que contiene la configuración de S3, en un objeto JSONValue. Esto debería resolver el error de decodificación que está viendo.

Comments are closed.