-
[JAVASCRIPT] 클라이언트 단(front-end)에서 Amazon S3 서버로 파일 업로드언어/JAVASCRIPT 2022. 6. 8. 19:35728x90반응형
Amazon S3에서 버킷을 생성 후 권한 및 기본 설정을 완료한 뒤, 클라이언트단에서 form을 이용하여 s3서버로 업로드 하고 싶다면 html의 input file과 javascript를 이용하여 간단하게 업로드 할 수 있다.
html
<form name="" action="" onsubmit="checkSubmit()"> <input type="file" name="upload" id="upload"> <input type="submit"> <!-- submit을 button으로 설정하고 클릭 시 uploadFile 함수를 호출하도록 적용할 수도 있다. --> </form>
javascript
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.809.0.min.js"></script> <script> function checkSubmit(){ uploadFile(document.getElementsByName("upload").files[0]); // files[0]을 해줘야 file의 데이터를 불러온다. } const uploadFile = file => { const albumBucketName = 'mybucket'; //버킷이름 const region = 'ap-northeast-2'; //지역이름(아시아) const accessKeyId = "myAccessKeyId"; const secretAccessKey = 'mySecretAccessKey'; const folder = 'myfolder/'; // 버킷내부 폴더안에 파일을 업로드 하고 싶을 때 설정하면 된다. AWS.config.update({ // s3 업로드를 하기위한 설정을 해준다. region, accessKeyId, secretAccessKey }); const upload = new AWS.S3.ManagedUpload({ params: { Bucket: albumBucketName, Key: folder+file.name, // 파일이름을 변경하고 싶으면 file.name 대신 원하는 이름을 넣으면 된다. Body: file, ACL: "public-read" // 다운로드 권한을 public으로 설정해 준다. } }); const promise = upload.promise(); // promise 를 이용해 비동기로 upload를 호출한다. promise.then( // 업로드 완료 후 실행된다. function(data) { // upload가 성공했을 경우 실행되는 함수. document.frm.submit(); }, function(err) { // upload가 실패했을 경우 실행되는 함수. return console.log(err.message); }; }; }; </script>
728x90반응형'언어 > JAVASCRIPT' 카테고리의 다른 글
[JAVASCRIPT] 특정 문자 기준으로 문자열 자르기(split) (0) 2022.09.09 [JAVASCRIPT] 테이블의 원하는 필드(항목)만 엑셀로 내보내기 (0) 2022.08.19 [JAVASCRIPT] SheetJS로 테이블 데이터 엑셀로 내보내기 (0) 2022.08.10 [JAVASCRIPT] Ajax 다중 셀렉트 박스 동적으로 만들기 (0) 2022.06.08