πŸ“ AWS S3 μ΄μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈ ν•„μš” 이미지 μ—…λ‘œλ“œμš© 버킷 생성 ( κ°œμΈν”„λ‘œμ νŠΈ )

10_2pangΒ·2023λ…„ 8μ›” 15일
0

βš½οΈνŠΈλŸ¬λΈ”μŠˆνŒ…

λͺ©λ‘ 보기
86/94
post-thumbnail

πŸ‘¨β€πŸ’»Β μ‚¬κ±΄


AWS S3 λ₯Ό μ΄μš©ν•΄, μ„œλ²„μ—μ„œ μ½μ„μˆ˜μžˆλ„λ‘ 이미지λ₯Ό μ—…λ‘œλ“œν•˜κ³ μž ν•˜μ˜€λ‹€.

일단 AWS S3 의 버킷을 μƒμ„±ν•˜μ—¬, test ν•΄ λ³΄μ•˜λ‹€.

❗ μƒμ„±ν• λ•Œ, μ•„λž˜μ˜ 이미지와 같이 μ²΄ν¬λ°•μŠ€λ₯Ό ν•΄μ œν•˜μ—¬, νΌλΈ”λ¦­μœΌλ‘œ λŒλ €μ„œ ν…ŒμŠ€νŠΈλ₯Ό ν•΄λ³΄μ•˜λ‹€.

κ·Έ ν›„, 기본적인 정책섀정을 ν•΄μ€€λ‹€.

{
    "Version": "2012-10-17",
    "Id": "Policy1692011436732",
    "Statement": [
        {
            "Sid": "Stmt1692011388256",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::fm2023-player-images/*"
        }
    ]
}

-> 좔후에, μ—…λ‘œλ“œλ₯Ό ν—ˆμš©ν•˜λŠ” 아이피와 μ½μ–΄μ˜¬μˆ˜μžˆλŠ” 아이디λ₯Ό 뢄리해쀄 생각이닀.

이제, μ—¬κΈ°μ„œ 이미지λ₯Ό μ—…λ‘œλ“œν•΄μ•Όν•˜λŠ”λ°,,, κ²Œμž„λ‚΄μ˜ λͺ¨λ“ μ„ μˆ˜ 및 μ½”μΉ˜μ˜ 이미지가 λ‹΄κΈ΄ νŒŒμΌμ€ μžˆμ§€λ§Œ, λ‚˜λŠ” λ‚΄κ°€ κ°€μ Έμ˜¬ λ°μ΄ν„°μ˜ μ„ μˆ˜ μ‚¬μ§„λ§Œ κ³¨λΌμ„œ 가져와야 μš©λŸ‰μ„ 쀄일 수 μžˆλ‹€.

βœ…Β ν•΄κ²°


일단, κ°„λ‹¨ν•˜κ²Œ μ„€λͺ…ν•˜λ©΄, 이전 λ³€ν™˜ν•œ SQL λ¬Έ 94개의 νŒŒμΌμ„ JSON 파일둜 λ³€ν™˜ν•˜μ—¬ ν•΄λ‹Ή 파일과 μΌμΉ˜ν•˜λŠ” μ΄λ―Έμ§€νŒŒμΌλ§Œ λ”°λ‘œ λ‹€λ₯Έ 폴더에 μ €μž₯ν•˜λ €κ³ ν•œλ‹€.

νŒŒμ΄μ¬μ„ ν†΅ν•œ λΆ„λ₯˜μž‘μ—…

πŸ• μ½”λ“œμž‘μ„±

ChatGPT 와 ꡬ글신을 λ™μ›ν•˜μ—¬, μ•„λž˜μ™€ 같은 λ‘œμ§μ„ κ΅¬ν˜„ν•˜μ˜€λ‹€.

import os
import shutil
import json

# JSON 파일의 경둜λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
json_file_path = "C:/Users/이광렬/Desktop/test/1.json"

# 사진듀이 μžˆλŠ” 폴더와 λ³΅μ‚¬ν•˜κ±°λ‚˜ 이동할 λŒ€μƒ 폴더λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
source_folder = "C:/Users/이광렬/Downloads/image/sortitoutsi/faces"
destination_folder = "C:/Users/이광렬/Downloads/image/sortitoutsi/players"

# 폴더가 μ—†μœΌλ©΄ μƒμ„±ν•©λ‹ˆλ‹€.
if not os.path.exists(destination_folder):
    os.makedirs(destination_folder)

# JSON νŒŒμΌμ„ λΆˆλŸ¬μ˜΅λ‹ˆλ‹€.
with open(json_file_path, 'r', encoding='utf-8-sig') as json_file:
    data = json.load(json_file)

    # λͺ¨λ“  ν•­λͺ©μ„ μˆœνšŒν•˜λ©΄μ„œ 파일λͺ…을 ν™•μΈν•˜κ³  볡사 λ˜λŠ” μ΄λ™ν•©λ‹ˆλ‹€.
    for item in data:
        if 'ID' in item:
            filename = item['ID'] + ".png" 
            source_path = os.path.join(source_folder, filename)
            destination_path = os.path.join(destination_folder, filename)

        # 파일이 원본 폴더에 μ‘΄μž¬ν•˜λŠ” 경우 λ³΅μ‚¬ν•©λ‹ˆλ‹€.
        if os.path.exists(source_path):
            shutil.copy2(source_path, destination_path)

print("μž‘μ—… μ™„λ£Œ!")

πŸ•‘ JSON μ½”λ“œ μž‘μ„± 및 λ°˜λ³΅μž‘μ—…

HTML to JSON 으둜 λ³€ν™˜ν•œ νŒŒμΌμ„ 1.json νŒŒμΌμ— 볡사뢙여넣기 ν•΄μ€€λ‹€.
κ·Έν›„, 파이썬 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ—¬ 이미지 νŒŒμΌμ„ μ§€μ •ν•œ ν΄λ”λ‘œ λ³΅μ‚¬ν•œλ‹€.

이 μž‘μ—…μ„ 94번 λ°˜λ³΅ν•΄ μ£Όμ—ˆλ‹€...

S3 버킷에 파일 μ—…λ‘œλ“œ

λ³΅μ‚¬ν•œ 폴더λ₯Ό S3 버킷에 μ—…λ‘œλ“œν•œλ‹€.

ν˜„μž¬κΉŒμ§€ μž‘μ—… 상황

πŸ’­Β κ°œμ„ 


  • κ΅­κΈ°, μ•„μ΄μ½˜λ„ S3 버킷에 μ—…λ‘œλ“œ ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
  • ν”„λ‘œμ νŠΈ 기초 ꡬ쑰λ₯Ό μ„€κ³„ν•΄μ•Όν•œλ‹€.
profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€