S3 플러그인 수정버전입니다. > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

S3 플러그인 수정버전입니다. 정보

S3 플러그인 수정버전입니다.

첨부파일

s3플러그인.7z (2.1M) 80회 다운로드 2022-07-30 13:21:38 포인트 차감50
테스트한 버전5.5.7
호환 가능 버전5.4.3 이후

본문

S3 은 아마존 AWS 의 파일 저장소입니다.

 

thisgun님 허락맡고 수정해서 올립니다.

기존 자료랑 달라진점

 

관리자 페이지

  - ACL 사용여부 설정

 

내부 변경사항

 - PHP 8.1 대응

 - PHP Doc 주석 추가

 - 네임스페이스 추가.

 - AWS 비밀키, 키, 지역, 버킷이름 DB -> dbconfig 처럼 s3 설정 파일 저장으로 변경.

- CDN 붙이기 위해 주소 확인 변경

 

PHP 7.0 부터 사용가능

 

S3 용어 설명

 

버킷

S3 내부에 만들 저장소입니다.

 

ACL  액세스 제어 목록인데요

각 파일마다 공개여부를 설정할 수있는 기능입니다.

지금 플러그인에서는 비디오랑 이미지 확장자에만 공개하기와 전부 공개 이렇게 나뉘어 있습니다.

최근 몇년새 아마존에서 권장하는건 ACL 안하고 버킷(저장소)단위로 파일 관리하는 것이더라고요

비공개 해야될것은 버킷 분리하던지 소유권을 단순화 시키려는거 같습니다.

 

key , 객체

S3 에서는 파일을 객체라고 표기합니다.

파일이 폴더식으로 관리되는것이아닌 키(파일 위치): 값(파일이름) 이렇게 보관하고

표시만 폴더구조로 보여주기 때문이라네요.

 

플러그인 관리자 설명

 

3717582117_1659088055.3791.png

 

s3에 item 폴더(쇼핑몰), editor, file 폴더만 관리합니다

나머지는 서버에 그대로입니다.

 

관리자 첫번째 메뉴에 추가됩니다.

 

맨위에 연결상태 칸입니다.

입력하시고

 

ACL 사용여부는 사용안함이 기본값이며 아래 S3 설정하기에 적어놓았습니다.

 

지역, 엑세스키 , 비밀키를 입력하시고 s3 설정을 클릭하시면

data 폴더에 s3config.php 파일이 생성되고 저장됩니다.

 

아래 s3 사용하기를 체크하시기 전에 연결상태를 봐주세요 입력값이 틀렸을 때 오류를 표시합니다.

 

* AWS 클라우드 프론트를 사용하신다면?

 

3717582117_1659089149.1497.png

 

s3service.php 에 get_config 함수안에 $this->endpoint = " 클라우드 프론트 주소  "  값 바꾸시면됩니다.

 

 

S3 설정하기

--  S3 설정하기  2022년 07월 22일에 작성된글입니다 추후 달라질수도 있습니다.

https://aws.amazon.com/ko/

AWS 가입하시고 AWS 콘솔에 로그인을 합니다.

3717582117_1658912993.2861.png

오른쪽에 버킷만들기 버튼

3717582117_1658913073.1446.png

버킷 이름지으시고 AWS 리전을 설정해주세요

서울은 빠르지만 좀더 값나가고 미국 버지니아는 너무 느리더라고요

 

객체 소유권

ACL 비활성 활성 여부를 선택하셔야 되고요

한번 선택하면 기존 파일들까지 전부 바꿔야 변경이 가능합니다.

 

 

ACL 활성

장점: 하나의 버킷에 서로 다른 AWS 계정으로 파일을 업로드할때

       파일 주인 계정만 관리가능합니다.

단점: ACL 해제시 AWS 콘솔에 들어가서 해제해야 합니다.

       버킷의 소유권을 이전하게 될 경우 좀더 복잡한 절차를 지닙니다.

 

ACL 비활성 - 버킷단위 객체소유권

이 버킷 내부의 모든 파일을 동일하게 관리할수있습니다.

단점: 이 버킷에 올린 파일은 버킷정책에 따라가기 때문에 여러 AWS 계정으로 쓸때

       공개, 비공개 여부를 따로 못정합니다

 

ACL 사용 관련 아마존 문서

https://aws.amazon.com/ko/premiumsupport/knowledge-center/s3-object-acl-use-cases/

 

사용이랑 사용안할 떄 나누어 적겠습니다.

ACL 사용

 

3717582117_1658915809.6738.png

ACL 활성화 됨을 선택해 주세요

객체 소유권은

객체라이터를 선택해주세요.

--------------------------

ACL 사용안함

- 기본값에 따라 ACL 비활성화(권장)을 선택해주세요

 

3717582117_1658915882.8952.png

퍼블릭으로 설정해주세요

제일 하단 주황색 버킷만들기를 누르시면 1단계 끝

 

버킷 권한과 S3 명령어 권한을 추가 해야되는데 정책 사용자를 추가해야됩니다.

3717582117_1658916164.2713.png

AWS 콘솔에 오른쪽 위에 주황색 아이디를 누르시면

메뉴가 나오고 보안자격 증명으로 이동

3717582117_1658916399.6026.png

왼쪽에 사용자 메뉴로 이동 후 사용자 추가

3717582117_1658916560.4487.png

3717582117_1658916646.2951.png

저는 기존그룹이 있어서 그렇고 그룹생성하기 그룹생성하기에서

그룹이름 새로 지으시고 그룹생성한다음 체크 하시면됩니다.

 

3단계는 태그추가인데 선택사항이라 다음:검토 버튼을 눌러이동합니다.

 

3717582117_1658916909.3224.png

사용자 만들기 하시면

3717582117_1658917082.0904.png

2단계끝

 

액세스 키 ID 랑 비밀키는 AWS 관리자 플러그인에 입력할 내용입니다.

세번째에 비밀번호는 그누보드 플러그인이랑 관련없고 리눅스에서 AWS 프로그램으로 S3 에 접근할때

필요합니다.

 

3 - 버킷 권한과 S3 명령어 권한을 추가입니다 이것만 하면 끝

3717582117_1658917543.8943.png

ARN 복사 하시고 (버킷정책에 쓸겁니다.)

권한 추가로 이동

 

3717582117_1658917587.4279.png

위에서 추가한 그룹 선택

3717582117_1658917781.1337.png

 

왼쪽에 정책 메뉴로 이동후 정책 생성

 

3717582117_1659086588.5842.png

 

옆에 JSON 탭 클릭하셔서 붙여 넣습니다.

 

ACL 사용

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetBucketLocation",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::버킷이름/data/*"   <-  ::: 옆에 버킷이름
            ]
        }
    ]
}

-------------------------------------

ACL 사용안함

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetBucketLocation",
            ],
            "Resource": [
                "arn:aws:s3:::버킷이름/data/*"   <-  ::: 옆에 버킷이름
            ]
        }
    ]
}

버킷이름 바꾸시고

저장합니다.

 

Action 은 S3에서 사용할 명령들입니다.

put(업로드)

PutObjectAcl (ACL 업로드)

ListBucket 버킷목록

삭제,

GetBucketLocation 버킷지역확인

 

 

다음은

S3 화면으로 돌아가서

3717582117_1659087047.583.png

 

버킷 선택하시고 권한 탭

 

아래

 

버킷정책이 있습니다 JSON 탭에서 붙여 주세요

 

ACL 사용

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "위에서 복사한 arn 을 적어주세요"
            },
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:PutObjectAcl",
                "s3:GetObjectAcl",

                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::버킷이름/data/*"
        }
    ]
}

 

principal 안에 AWS 에 위에서 복사한 ARN 을 붙여주세요

--------------------------

ACL 사용안함

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::sirnewbucket/*",
                "arn:aws:s3:::sirnewbucket"
            ]
        }
    ]
}

 

ACL 사용안할 때는 principal이 * 입니다. 

끝입니다.

 

 

 

추천
12

댓글 전체

좋은 자료 정말 감사드립니다. 혹시 "s3에 item 폴더(쇼핑몰), editor, file 폴더만 관리합니다" 다른 폴더도 관리가 가능하게 할수 있을까요?
전체 2
그누보드5 플러그인 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT