Tip & Tech

유용한 zigger 기술/활용 팁을 공유해 주세요.

AWS S3 Storage 관련 문제를 겪으시는 분들을 위해~ 2023.09.03 03:49:01에 작성

  • 게시글 작성자 정박사
  • 게시글 조회수 225회
일단 zigger 개발자분들께 항상 좋은 Documentation을 제공함에 감사함을 표시합니다.
AWS S3 같은 모듈은 알아서 연결하라는 개발사들이 다반사인데 zigger팀은 초보분들을 위해서 모듈은 물론 너무나도 쉽게 연결할수 있게 GUI까지 제공하심에 박수~~~

다만 Documentation을 제대로 따라했는데도 ERR_MSG_13 같은 에러를 겪는 분이시라면 집중해주세요~
일단 https://www.zigger.net/forum/qna/84 에서도 언급이 된것처럼 AWS S3 Storage를 연결하시는 분들은 가상호스트 방식을 사용하셔야합니다.

가상호스트 방식도 안되는 분들은 일단 웹사이트에 입력하신 정보가 올바른지 먼저 확인하셔야 합니다.
서비스를 이용하기 위해서는 endpoint, bucket, access_key, secret_key, region을 쓰셔야 하는데요.

파이썬에서 간단하게
import boto3

# Replace these with your AWS access key and secret key
aws_access_key = 'YOUR_ACCESS_KEY'
aws_secret_key = 'YOUR_SECRET_KEY'

# Replace with your S3 bucket name and the desired file name
bucket_name = 'your-bucket-name'
file_name = 'path/to/your/file.txt'

# Initialize the S3 client
s3 = boto3.client(
    's3',
    aws_access_key_id=aws_access_key,
    aws_secret_access_key=aws_secret_key
)

# Upload the file
try:
    s3.upload_file(file_name, bucket_name, file_name)
    print(f'Successfully uploaded {file_name} to {bucket_name}.')
except Exception as e:
    print(f'Error uploading {file_name} to {bucket_name}: {str(e)}')

이 코드는 지정한 파일을 버킷에 올리는 역할을 하는데요. 코드가 정상 작동이 되었다면 올바른 정보를 가지고 계신겁니다.
정상 작동이 되었다면 이제 endpoint를 확인하실 때입니다. 'https://s3.amazonaws.com' 가 아니고 버킷이름이 포함되어 있는 endpoint를 사용하셨다면
그게 문제였을 겁니다.

자 이래도 안되나요? 그럼 이런식으로 마지막 ACL 옵션을 주석 처리해보세요
               $s3->putObject([
                    'Bucket' => $CONF['s3_key2'],
                    'Key' => str_replace(PH_DATA_PATH.'/', '', $this->path).'/'.$filename,
                    'Body' => $awsSource,
                    // 'ACL' => 'public-read'
                ]);

이러면 왠만하면 성공적으로 처리가 될것입니다.
물론 이 방법 말고도 ACL 방식을 aws에서 꺼두는 방식도 있습니다.
어느 방법이 좋은지는 개발자 분들이 나중에 댓글로 알려주시지 않을까요? ㅎㅎㅎㅎ

zigger 팀의 코드가 워낙 깨끗하기 때문에 error 로그를 보면서 차근차근 하나하나씩 해결하면 성공적으로 웹사이트를 배포할수 있을겁니다!
모두 화이팅입니다.