반응에서 S3 버킷으로 파일 업로드
s3 버킷에 파일을 업로드하려면
aws-sdk
npm 패키지를 설치해야 합니다.npm install aws-sdk --save
버킷에 다음 정책이 있는지 확인
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<ExposeHeader>ETag</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
ETag 헤더가 노출되어야 하며 그렇지 않으면 더 큰 업로드가 완료되지 않습니다.
React를 작성해 봅시다.
import AWS from 'aws-sdk'
구성 요소 생성자에서 AWS 액세스 키와 보안 키를 설정합니다. aws 콘솔에서 바로 가져옵니다.
AWS.config.update({
accessKeyId: AWSAccessKeyId,
secretAccessKey: AWSSecretKey
})
생성자에서도 버킷 생성
항상 버킷의 이름과 지역을 다시 확인하십시오.
this.myBucket = new AWS.S3({
params: { Bucket: 'video-bucket-xyz'},
region: 'ap-south-1',
})
이제 버킷에 파일을 업로드하려는 경우 다음 함수를 호출하고 선택한 파일을 함수 인수로 전달합니다.
uploadFile = (file) => {
const params = {
ACL: 'public-read',
Key: file.name,
ContentType: file.type,
Body: file,
}
this.myBucket.putObject(params)
.on('httpUploadProgress', (evt) => {
// that's how you can keep track of your upload progress
this.setState({
progress: Math.round((evt.loaded / evt.total) * 100),
})
})
.send((err) => {
if (err) {
// handle the error here
}
})
}
putObjecthere 에 대해 자세히 알아볼 수 있습니다.
참고문헌
aws-sdk
Reference
이 문제에 관하여(반응에서 S3 버킷으로 파일 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mohitkyadav/upload-files-to-s3-buckets-from-react-m6o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)