#!/bin/bash # fromis_9 Photos 테이블에서 이미지 다운로드 스크립트 # 앨범별로 폴더 분류하여 저장 OUTPUT_DIR="/docker/fromis_9/downloaded_photos" mkdir -p "$OUTPUT_DIR" # MariaDB에서 데이터 가져오기 docker exec mariadb mariadb -u admin -p'auddnek0403!' fromis_9 -N -e "SELECT photo_id, album_name, photo FROM Photos;" | while IFS=$'\t' read -r photo_id album_name photo_url; do # 앨범명에서 특수문자 제거하여 폴더명 생성 folder_name=$(echo "$album_name" | sed 's/[^a-zA-Z0-9가-힣 ]/_/g' | sed 's/ */_/g') # 폴더 생성 mkdir -p "$OUTPUT_DIR/$folder_name" # 파일명 생성 (photo_id 기반) filename="${photo_id}.jpg" filepath="$OUTPUT_DIR/$folder_name/$filename" # 이미 다운로드된 파일은 건너뛰기 if [ -f "$filepath" ]; then echo "Skip: $filepath (already exists)" continue fi # 다운로드 echo "Downloading: $album_name/$filename" curl -s -L -o "$filepath" "$photo_url" # 다운로드 실패 시 삭제 if [ ! -s "$filepath" ]; then rm -f "$filepath" echo "Failed: $filepath" fi # Rate limiting (0.2초 대기) sleep 0.2 done echo "Download complete!" echo "Saved to: $OUTPUT_DIR" # 결과 요약 echo "" echo "=== Summary ===" for dir in "$OUTPUT_DIR"/*/; do if [ -d "$dir" ]; then count=$(ls -1 "$dir" 2>/dev/null | wc -l) dirname=$(basename "$dir") echo "$dirname: $count files" fi done