Hướng dẫn fix AWSS3Provider - error uploading region is missing trong Amplify

9th Apr 2021
Table of contents

Tôi đang sử dụng công cụ chọn ảnh gốc phản ứng để lấy đường dẫn tệp của video trên điện thoại trình mô phỏng iOS cho ứng dụng gốc phản ứng của mình. Làm cách nào để sử dụng cái này để tải lên S3 bằng Amplify?

import ImagePicker from 'react-native-image-picker';
import RNFetchBlob from 'react-native-fetch-blob';
import {Storage} from 'aws-amplify';

class App extends Component {

 constructor(props) {
    super(props)

 }

  //This function is called on a Button click
  pickVideo = async () => {

     const options = {
     mediaType: 'video'
  };

  ImagePicker.launchImageLibrary(options, (response) => {

    if(response.didCancel){
      console.log('User cancelled image picker');
    }
    else if (response.error){
       console.log('ImagePicker error: ', response.error);
    }
    else{
       this.setState({ 
          vidFileName: response.fileName,
        });

        console.log(response.uri);

       this.putFileInS3(response.path, repsonse.filename);
    }
   });

  }

  readFile = (somefilePath) => {
      return RNFetchBlob.fs.readFile(somefilePath, 'base64').then(data => new 
      Buffer(data, 'base64'));
  } 

  putFileInS3 = (filePath, fileName) => {  

    this.readFile(filePath).then(buffer => {
    Storage.put(fileName, buffer, { contentType: 'video/mp4' })
     .then(() => {console.log('successfully saved to bucket');})
     .catch(e => { console.log(e);});
   }
  }

Cách giải quyết

Storage.configure({
    AWSS3: {
        bucket: '',//Your bucket ARN;
        region: ''//Specify the region your bucket was created in;
    }
});

import Amplify from 'aws-amplify';

Amplify.configure({
    Auth: {
        identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab', 
        region: 'XX-XXXX-X', // REQUIRED - Amazon Cognito Region
        userPoolId: 'XX-XXXX-X_abcd1234', //OPTIONAL - Amazon Cognito User Pool ID
        userPoolWebClientId: 'XX-XXXX-X_abcd1234', 
    },
    Storage: {
        AWSS3: {
            bucket: '', //REQUIRED -  Amazon S3 bucket
            region: 'XX-XXXX-X', //OPTIONAL -  Amazon service region
        }
    }
});
Bạn thấy bài viết này như thế nào?
0 reactions

Add new comment

Image CAPTCHA
Enter the characters shown in the image.
Câu nói tâm đắc: “Điều tuyệt với nhất trong cuộc sống là làm được những việc mà người khác tin là không thể!”

Related Articles

Hiện nay, việc quản lý các web applications khá là phức tạp, ví dụ bạn phải quản lý load balancer, vài web servers, database servers

In this video we'll be setting up a new React App with AWS Amplify to add Sign up, Login and Logout in the easiest way possible.

In this hands on workshop Amazon Developer Advocate Nader Dabit shows us how to get started with serverless GraphQL using AWS Amplify.