Intenté cargar un archivo con react-native-background-upload, pero mi orden de parámetros no es el requerido. ¿Cómo puedo arreglarlo? Parece que no puedo cambiar el orden de mi solicitud.
Aquí está mi código
const fileInfo = await Upload.getFileInfo(path); const options: any = { url: url, path: path, method: 'POST', type: 'multipart', field: 'file', maxRetries: 2, // set retry count (Android only). Default 2 headers: { 'content-type': fileInfo.mimeType, // server requires a content-type header 'content-length': `${fileInfo.size}`, }, parameters: { key: `${fields.key}/${fileInfo.name}`, acl: fields['acl'], bucket: fields['bucket'], 'X-Amz-Algorithm': fields['X-Amz-Algorithm'], 'X-Amz-Credential': fields['X-Amz-Credential'], 'X-Amz-Date': fields['X-Amz-Date'], 'X-Amz-Signature': fields['X-Amz-Signature'], Policy: fields['Policy'], 'Content-Type': fileInfo.mimeType, }, notification: { enabled: true, }, useUtf8Charset: true, }; Upload.startUpload(options) .then(uploadId => { console.log('Upload started'); Upload.addListener('progress', uploadId, data => { console.log(`Progress: ${data.progress}%`); }); Upload.addListener('error', uploadId, data => { console.log(`Error: ${data.error}%`); }); Upload.addListener('cancelled', uploadId, data => { console.log('Cancelled!', data); }); Upload.addListener('completed', uploadId, data => { // data includes responseCode: number and responseBody: Object console.log('Completed!', data); }); }) .catch(err => { console.log('Upload error!', err); });Este es el mensaje de error de s3
Requiere clave como primer parámetro.
<?xml version="1.0" encoding="UTF-8"?> <Error> <Code>InvalidArgument</Code> <Message>Bucket POST must contain a field named 'key'. If it is specified, please check the order of the fields.</Message> <ArgumentName>key</ArgumentName> <ArgumentValue></ArgumentValue> </Error>