강좌게시판

제목 AWS S3 파일 전송 방법
글쓴이 눈널사랑 작성시각 2016/05/26 18:32:38
댓글 : 14 추천 : 0 스크랩 : 1 조회수 : 38400   RSS

CI 에서 AWS S3로 파일 전송하는 방법 설명입니다.

기본적으로 사전에 S3 서비스연결하고 버켓까지 생성했다고 가정하고 진행하겠습니다.

 

1. 필요한 파일

  - 다운로드 받을 수 있는 사이트 -> https://github.com/psugand/CodeIgniter-S3

     /config/s3.php  (config 파일)

     /libraries/S3.php (라이브러리 파일)

     위에 config, 라이브러리 파일은 변경 없이 그대로 저장하시면 됩니다.

 

2. 접속 방법 샘플 소스 설명

// Load Library 

$this->load->library('s3'); 

$input = S3::inputFile('/abc/a.jpg'); <- 서버 절대경로

if (S3::putObject($input, 'abc', 'goods/1234567/1234567.jpg', S3::ACL_PUBLIC_READ)) { <- 버켓명과 저장할 파일경로/파일명 

  echo "File uploaded."; 

}else{ 

  echo "Failed to upload file."; 

}

 

첨부파일 압축해서 올리고 다운받으면 제대로 압축이 풀리지 않네요.

다운받을 수 있는 사이트를 알려드리겠습니다.

https://github.com/psugand/CodeIgniter-S3

 

위에 사이트에서 다운받으신 다음에 config 설정만 아래와 같이 해주시면 됩니다.

 

$config['use_ssl'] = FALSE;  <- TRUE 로 하면 EC2에서 사용할때 에러 발생함

$config['verify_peer'] = FALSE; <- TRUE 로 하면 EC2에서 사용할때 에러 발생함

$config['access_key'] = '액세스 키 입력'; 

$config['secret_key'] = '시크릿 키 입력'; 

 

 

 다음글 쇼핑몰 제작 동영상 강좌 (4)
 이전글 4월 9일 MS Community Open Camp 코... (4)

댓글

한대승(불의회상) / 2016/05/27 05:55:38 / 추천 0

좋은 정보 감사 합니다.

 

kaido / 2016/05/27 09:05:06 / 추천 0
첨부파일이 비어있어요 ㅠ
눈널사랑 / 2016/05/27 10:59:16 / 추천 0
아 이상하네요.. 이쪽 올렸다 다시 다운받으면.. ㅠㅠ 일단 그래서 다운받을 수 있는 사이트를 올렸습니다.
kaido / 2016/05/27 11:06:05 / 추천 0

@눈널사랑

오홍 감사합니다 ㅎ 

sdk 없이 직접 구현 하셨군요. 수고 많으셨어요 ㅎㅎ

 

눈널사랑 / 2016/05/27 11:06:54 / 추천 0
ㅎ.. 그냥 저도 구글링으로 찾은거라..^^;;
눈널사랑 / 2016/05/27 11:08:38 / 추천 0
참고로 http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation 관련 amazon s3 php class 메뉴얼입니다.
kaido / 2016/05/27 11:09:24 / 추천 0

@눈널사랑

이젠 구글링으로도 라이브러리가 공개 되었나 보군요 

제가 할때는 아무 자료도 없어서 [특히 해쉬 암호부분] 꽤나 고생 했던 OTL

한대승(불의회상) / 2016/05/27 11:49:24 / 추천 0
묘하게도 반디집에서는 잘 풀립니다. 이유는 왜 그런지 모르겠네요.
변종원(웅파) / 2016/05/27 18:36:36 / 추천 0
알집 퇴출. ㅎㅎ
rawPHPoverCI / 2016/11/15 02:20:35 / 추천 0

The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.

S3가 새로운 인증 방식을 사용하게 되면서 이 라이브러리는 쓸 수가 없어진 것 같네요ㅠ

kaido / 2016/11/15 08:37:30 / 추천 0

@rawPHPoverCI 

새로운 인증 방식을 도입한게 아니라, 신규 장비에 대해서 추가 인증 방식을 도입 했습니다.

[해당 인증 방식으로도 구 서버 인증이  가능한 하위호환을 지원 합니다.]

 

도쿄는 구인증 방식이라면 서울리전꺼는 최신 인증 방식을 넣어야 합니다.

메세지 대로 SHA256 값으로 암호를 해야 합니다.

직접 확인은 안해보았는데, 해당 암호 부분이 빠져있나 보네요 ㅎㅎ

공부가필요한 / 2018/03/12 10:49:31 / 추천 0

S3 upload하는도중에 글을 읽게되어 궁금한점이 생겨 댓글남겨요! 

아직초보라 단순한거일수도있는데 잘모르겠네요 ㅜ

저장할 파일경로/파일명이 CI에서 저장할 경로인가요? 아니면 S3버켓에 저장할 경로를 적어야하나요?

그리고 123.jgp처럼 파일명까지 지정해야하는 이유좀 알려주실수있나요? ㅠㅠ 

kaido / 2018/03/12 10:55:59 / 추천 0

@공부가필요한

저도 매번 느끼는 의문이긴 합니다만...

서버에 업로드를 하고 나서 S3로 올려야 하는 구조입니다.

 

로컬 -> 서버업로드 -> S3업로드

이런 형태입니다.

즉 저장할 파일경로/파일명은  서버에 업로드할 주소 입니다.

공부가필요한 / 2018/03/12 14:12:31 / 추천 0

@ kaido

답변감사합니다! 구조자체가 그런지까지는 생각을 못했네요 ㅎㅎ..