AWS Amplify를 사용하여 React Native에서 S3로 업로드

아미르

Amplify를 사용하여 React Native에서 S3에 이미지를 업로드하려고합니다. 텍스트 파일을 성공적으로 업로드 할 수 있습니다. 그러나 이미지는 아닙니다.

내 코드는 다음과 같습니다.

import React from 'react';
import {View, Text, Button, Image} from 'react-native';
import {identityPoolId, region, bucket} from '../auth';
import image from '../assets/background.png';
import Amplify, {Storage} from 'aws-amplify';

Amplify.configure({
    Auth: {identityPoolId,region},
    Storage : {bucket,region}
})

const upload = () => {
    Storage.put('logo.jpg', image, {contentType: 'image/jpeg'})
        .then(result => console.log('result from successful upload: ', result))
        .catch(err => console.log('error uploading to s3:', err));
}

const get = () => {   //this works for both putting and getting a text file
    Storage.get('amir.txt')
        .then(res => console.log('result get', res))
        .catch(err => console.log('err getting', err))
}

export default function ImageUpload(props) {

    return (
        <View style={{alignItems : 'center'}}>
            <Image style={{width: 100, height: 100}} source={image} />
            <Text>Click button to upload above image to S3</Text>
            <Button title="Upload to S3" onPress={upload}/>
            <Button title="Get from S3" onPress={get}/>
        </View>
    )

}

오류 메시지는 다음과 같습니다.

error uploading to s3: [Error: Unsupported body payload number]
아미르

결국 react-native-aws3 라이브러리를 사용하여 이미지를 S3에 업로드했습니다. AWS amplify를 사용하여 직접 이미지를 업로드하는 방법에 대한 답을 찾는 것이 더 간단 할 수 있었으면했지만 작동하지 않았습니다. 그래서 내가 한 일은 다음과 같습니다.

(이 함수의 래퍼는 React Component입니다. 저는 'expo-image-picker'의 ImagePicker, 'expo-permissions'의 권한 및 'expo-constants'의 상수를 사용하여 카메라 롤에서 이미지 업로드를 설정하고 있습니다. )

import {identityPoolId, region, bucket, accessKey, secretKey} from '../auth';
import { RNS3 } from 'react-native-aws3';



async function s3Upload(uri) {

      const file = {
               uri,
               name : uri.match(/.{12}.jpg/)[0],
               type : "image/png"
      };

        const options = { keyPrefix: "public/", bucket, region, 
        accessKey, secretKey, successActionStatus: 201}

        RNS3.put(file, options)
            .progress(event => {
                console.log(`percentage uploaded: ${event.percent}`);
            })
            .then(res => {
                if (res.status === 201) {
                    console.log('response from successful upload to s3:', 
                    res.body);
                    console.log('S3 URL', res.body.postResponse.location);
                    setPic(res.body.postResponse.location);

                } else {
                    console.log('error status code: ', res.status);
                }
            })
            .catch(err => {
                console.log('error uploading to s3', err)
            })
}

const pickImage = async () => {
        let result = await ImagePicker.launchImageLibraryAsync({
            mediaTypes : ImagePicker.MediaTypeOptions.All,
            allowsEditing : true,
            aspect : [4,3],
            quality : 1
        });

        console.log('image picker result', result);

        if (!result.cancelled) {
            setImage(result.uri);
            s3Upload(result.uri);
        }
    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

amplify Storage를 사용하여 s3에 잘못 업로드 된 이미지 (React Native-Expo-Amplify)

분류에서Dev

React Native AWS S3 업로드

분류에서Dev

Java AWS SDK를 사용하여 S3 버킷에 폴더 업로드

분류에서Dev

NodeJS를 사용하여 ffmpeg 파일 출력을 AWS s3에 업로드

분류에서Dev

React Native에서 FormData를 사용하여 비디오 업로드

분류에서Dev

Ansible을 사용하여 반복적으로 AWS S3에 폴더를 업로드하는 방법

분류에서Dev

Scala에서 AWS Glue를 사용하여 S3에 CSV 파일로드

분류에서Dev

Java를 사용하여 AWS S3에 폴더를 업로드하려면 어떻게해야합니까?

분류에서Dev

React에서 Axios를 사용하여 S3 (PUT)에 업로드 할 때 데이터가 손상됨

분류에서Dev

FFMPEG를 사용하여 파일을 변환하고 AWS S3 Nodejs에 업로드

분류에서Dev

aws-sdk-java를 사용하여 S3 버킷에 업로드하는 동안 PermanentRedirect 오류

분류에서Dev

Ruby를 사용하여 S3에 파일을 업로드하는 동안 Aws :: Errors :: MissingRegionError 발생

분류에서Dev

URL에서 여러 이미지를 다운로드하고 AWS Lambda (nodejs)에서 aws s3에 업로드

분류에서Dev

React Native S3 이미지 업로드는 XHR을 사용하여 "Stream Closed"를 반환합니다.

분류에서Dev

작업 대기열을 사용하여 AWS S3 버킷에 업로드

분류에서Dev

React Native를 사용하여 Heroku에 이미지 업로드

분류에서Dev

AWS SDK ASP.NET을 사용하여 S3에 파일 업로드

분류에서Dev

Flask를 사용하여 AWS S3에서 처리 할 파일을 업로드하려고 할 때 405 메서드가 허용되지 않습니다.

분류에서Dev

AWS CDK에서 사용자 지정 리소스를 사용하여 s3 버킷에 파일을 업로드하는 방법

분류에서Dev

NodeJS 및 AWS S3를 사용하여 S3 버킷에 손상되거나 잘린 mp4 업로드

분류에서Dev

AWS Amplify currentAuthenticatedUser는 React Native에서 FB 로그인 후 null이지만 앱이 다시로드되면 currentAuthenticatedUser가 유효한 사용자를 반환합니다.

분류에서Dev

AWS amplify를 사용하여 읽기 전용 AWS S3 버킷에서 iOS 앱으로 이미지를 안전하게 다운로드하는 방법은 무엇입니까?

분류에서Dev

AWS S3에 여러 파일을 업로드하고 Angular를 사용하여 Firebase에 URL을 저장하는 방법은 무엇입니까?

분류에서Dev

사전 서명 된 URL을 사용하여 AWS S3에 업로드 MP4 비디오를 재생할 수 없습니다

분류에서Dev

plupload를 사용하여 Amazon S3에 여러 파일 업로드

분류에서Dev

Swift3를 사용하여 Amazon S3에 이미지 업로드

분류에서Dev

cakephp 3을 사용하여 AWS S3 파일 업로드

분류에서Dev

React Native 및 Expo에서 AWS Amplify Datastore를 사용하여 "노드가 지원되지 않음"오류가 발생 함

분류에서Dev

빈 하위 폴더가 포함 된 폴더를 S3에 업로드 (AWS Java SDK 사용)

Related 관련 기사

  1. 1

    amplify Storage를 사용하여 s3에 잘못 업로드 된 이미지 (React Native-Expo-Amplify)

  2. 2

    React Native AWS S3 업로드

  3. 3

    Java AWS SDK를 사용하여 S3 버킷에 폴더 업로드

  4. 4

    NodeJS를 사용하여 ffmpeg 파일 출력을 AWS s3에 업로드

  5. 5

    React Native에서 FormData를 사용하여 비디오 업로드

  6. 6

    Ansible을 사용하여 반복적으로 AWS S3에 폴더를 업로드하는 방법

  7. 7

    Scala에서 AWS Glue를 사용하여 S3에 CSV 파일로드

  8. 8

    Java를 사용하여 AWS S3에 폴더를 업로드하려면 어떻게해야합니까?

  9. 9

    React에서 Axios를 사용하여 S3 (PUT)에 업로드 할 때 데이터가 손상됨

  10. 10

    FFMPEG를 사용하여 파일을 변환하고 AWS S3 Nodejs에 업로드

  11. 11

    aws-sdk-java를 사용하여 S3 버킷에 업로드하는 동안 PermanentRedirect 오류

  12. 12

    Ruby를 사용하여 S3에 파일을 업로드하는 동안 Aws :: Errors :: MissingRegionError 발생

  13. 13

    URL에서 여러 이미지를 다운로드하고 AWS Lambda (nodejs)에서 aws s3에 업로드

  14. 14

    React Native S3 이미지 업로드는 XHR을 사용하여 "Stream Closed"를 반환합니다.

  15. 15

    작업 대기열을 사용하여 AWS S3 버킷에 업로드

  16. 16

    React Native를 사용하여 Heroku에 이미지 업로드

  17. 17

    AWS SDK ASP.NET을 사용하여 S3에 파일 업로드

  18. 18

    Flask를 사용하여 AWS S3에서 처리 할 파일을 업로드하려고 할 때 405 메서드가 허용되지 않습니다.

  19. 19

    AWS CDK에서 사용자 지정 리소스를 사용하여 s3 버킷에 파일을 업로드하는 방법

  20. 20

    NodeJS 및 AWS S3를 사용하여 S3 버킷에 손상되거나 잘린 mp4 업로드

  21. 21

    AWS Amplify currentAuthenticatedUser는 React Native에서 FB 로그인 후 null이지만 앱이 다시로드되면 currentAuthenticatedUser가 유효한 사용자를 반환합니다.

  22. 22

    AWS amplify를 사용하여 읽기 전용 AWS S3 버킷에서 iOS 앱으로 이미지를 안전하게 다운로드하는 방법은 무엇입니까?

  23. 23

    AWS S3에 여러 파일을 업로드하고 Angular를 사용하여 Firebase에 URL을 저장하는 방법은 무엇입니까?

  24. 24

    사전 서명 된 URL을 사용하여 AWS S3에 업로드 MP4 비디오를 재생할 수 없습니다

  25. 25

    plupload를 사용하여 Amazon S3에 여러 파일 업로드

  26. 26

    Swift3를 사용하여 Amazon S3에 이미지 업로드

  27. 27

    cakephp 3을 사용하여 AWS S3 파일 업로드

  28. 28

    React Native 및 Expo에서 AWS Amplify Datastore를 사용하여 "노드가 지원되지 않음"오류가 발생 함

  29. 29

    빈 하위 폴더가 포함 된 폴더를 S3에 업로드 (AWS Java SDK 사용)

뜨겁다태그

보관