使用React Native相机拍照后,使用React Native将图像上传到AWS S3

时间:2019-02-05 08:12:02

标签: amazon-web-services react-native amazon-s3

我是React Native的初学者。我想在使用react native相机拍照后将文件上传到AWS s3。我可以使用本机相机拍照。现在,我需要上传到s3存储桶。当我搜索此文件时,我得到了很多文档,并且对如何使用它感到困惑。

我已经将文件上传到Amazon s3并使用php下载了s3表格。但是在我还是一个初学者的时候,我并没有得到如何做到的反应。我在aws s3文件上传文档中搜索了我使用的php,java和.Net等文件。但是我没有获得本机响应。

任何人都可以帮助我做到这一点。

我在React Native中拍摄图像的代码是

import React, {Component} from 'react';
import {Platform, StyleSheet, Text,TouchableOpacity, View} from 'react-native';
import ImagePicker from 'react-native-image-picker';
import RNS3 from 'react-native-aws3';
export default class App extends Component<Props> {
  takePic(){
    ImagePicker.showImagePicker({},(responce)=>{
      console.log(responce);
      const file ={
        uri : responce.path,
        name : responce.fileName,
        type :  responce.type,
      }
      console.log(file);
      const config ={
        keyPrefix :'uploads/',
        bucket : '**',
        region :'***',
        accessKey:'***',
        secretKey :'***',
        successActionStatus :201
      }
      RNS3.put(file ,config)
      .then((responce) => {
        console.log(responce);
      })
    })
  }
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>Welcome v</Text>
        <TouchableOpacity onPress={this.takePic.bind(this)}>
          <Text>Take Picture</Text>
        </TouchableOpacity>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

当我从galary /点赞的新照片中选择图片时,出现以下错误,

02-05 09:10:52.738 12357 12389 I ReactNativeJS: { uri: '/storage/emulated/0/Pictures/image-cb48f179-5b00-4e0a-93ef-74206f76c4e4.jpg',
02-05 09:10:52.738 12357 12389 I ReactNativeJS:   name: 'image-cb48f179-5b00-4e0a-93ef-74206f76c4e4.jpg',
02-05 09:10:52.738 12357 12389 I ReactNativeJS:   type: 'image/jpeg' }
02-05 09:10:52.738 12357 12389 E ReactNativeJS: undefined is not an object (evaluating '_reactNativeAws.default.put')

如何解决此ReactNativeJS:undefined不是对象(评估'_reactNativeAws.default.put')。

您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我已经解决了我的错误:) :)。最后,它在4天后生效。很高兴。

我已经安装了react-native-file-upload。现在它可以完美运行了。

npm install react-native-file-upload --save