SaevOps
[네이버클라우드] Object Storage에서 파일 다운로드하기 본문
728x90
반응형
☁️ 네이버클라우드 Object Storage에서 파일 다운로드하기 (Python)
안녕하세요! 오늘은 Python boto3 라이브러리를 사용해 네이버클라우드 Object Storage에 있는 파일을 자동으로 다운로드하는 방법을 알아볼게요. 여러 파일을 한 번에 편리하게 내려받을 수 있어 아주 유용하답니다. 🚀
1. 준비물
먼저, 이 스크립트를 사용하기 위해 필요한 것들을 준비해야 해요.
- Python 설치: 파이썬이 없다면 공식 홈페이지에서 설치해 주세요.
- boto3 라이브러리 설치: 터미널이나 명령 프롬프트에서 아래 명령어를 입력하여 설치합니다.
pip install boto3 - 네이버클라우드 Object Storage 정보:
- Access Key와 Secret Key
- 버킷(Bucket) 이름
- Endpoint URL (https://kr.object.gov-ncloudstorage.com)
2. Python 스크립트 작성하기
이제 본격적으로 코드를 작성해 볼까요? 아래 코드를 download_files.py와 같은 이름으로 저장하세요.
🔑 참고: 보안을 위해 Access Key와 Secret Key는 코드에 직접 입력하는 것보다 환경 변수로 관리하는 것을 권장해요. 스크립트에는 os.environ.get()을 사용해 환경 변수에서 가져오는 방식으로 작성되어 있답니다.
Python
import boto3
import os
# 네이버클라우드 인증 정보 및 버킷 이름
# os.environ.get()을 사용하여 환경 변수에서 가져오는 것을 권장합니다.
# 직접 입력 시: ACCESS_KEY = "YOUR_ACCESS_KEY"
ACCESS_KEY = "YOUR_ACCESS_KEY" # <-- 여기에 실제 키 입력
SECRET_KEY = "YOUR_SECRET_KEY" # <-- 여기에 실제 키 입력
BUCKET_NAME = "YOUR_BUCKET_NAME" # <-- 여기에 실제 버킷 이름 입력
# 네이버클라우드 Object Storage 클라이언트 생성
# 'endpoint_url'을 네이버클라우드 URL로 설정하는 것이 중요합니다.
s3 = boto3.client(
's3',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
endpoint_url='https://kr.object.gov-ncloudstorage.com'
)
# 파일을 다운로드할 로컬 디렉토리 경로
DOWNLOAD_DIR = './downloaded_files'
if not os.path.exists(DOWNLOAD_DIR):
os.makedirs(DOWNLOAD_DIR) # 디렉토리가 없으면 생성
print(f"'{BUCKET_NAME}' 버킷의 파일 목록을 가져오는 중...")
try:
# 버킷 내 모든 객체(파일) 리스트 가져오기
response = s3.list_objects_v2(Bucket=BUCKET_NAME)
if 'Contents' in response:
for obj in response['Contents']:
file_key = obj['Key']
# 다운로드 경로 설정 (기존 폴더 구조 유지)
download_path = os.path.join(DOWNLOAD_DIR, file_key)
# 만약 하위 폴더가 있다면 디렉토리를 미리 생성
os.makedirs(os.path.dirname(download_path), exist_ok=True)
print(f"'{file_key}' 파일을 다운로드 중...")
# 실제로 파일 다운로드
s3.download_file(BUCKET_NAME, file_key, download_path)
print(f"✅ '{file_key}' 다운로드 완료 -> '{download_path}'")
else:
print("🤔 버킷에 파일이 없습니다.")
except Exception as e:
print(f"❗ 오류가 발생했습니다: {e}")
3. 스크립트 실행하기
코드를 저장했다면, 이제 실행해 볼 시간입니다. 터미널이나 명령 프롬프트에서 아래 명령어를 입력하세요.
python download_files.py
스크립트가 실행되면 버킷에 있는 파일 목록을 불러와 downloaded_files라는 폴더에 하나씩 다운로드하기 시작할 거예요. 다운로드가 완료되면 성공 메시지가 출력됩니다.
4. 코드 분석 (자세히 알아보기)
- boto3.client('s3', ...): S3와 호환되는 네이버클라우드 Object Storage에 연결하기 위한 클라이언트를 생성합니다. 이때 endpoint_url을 네이버클라우드의 URL로 정확하게 지정하는 것이 핵심이에요.
- s3.list_objects_v2(Bucket=BUCKET_NAME): 지정된 버킷의 모든 파일(객체) 목록을 가져옵니다. response['Contents']에 파일 정보가 담겨 있어요.
- s3.download_file(BUCKET_NAME, file_key, download_path): 각 파일을 지정된 로컬 경로로 다운로드하는 핵심 함수입니다. file_key는 Object Storage 내의 파일 경로를 의미하고, download_path는 로컬에 저장될 경로를 의미합니다.
이 스크립트를 활용하면 복잡한 웹 UI를 통하지 않고도 대량의 파일을 손쉽게 관리하고 다운로드할 수 있습니다
728x90
반응형
'클라우드 > NBP' 카테고리의 다른 글
| [네이버클라우드] HyperClova 오픈소스 테스트 (windows) (0) | 2025.05.16 |
|---|---|
| [NCP-AI] 기출 & 덤프 문제 (3) | 2025.03.14 |
| [NCP-AI] 기출내용 기반 이론 내용 (17) | 2025.03.07 |
| [NBP] Cloud for mysdql Binlog 실시간 저장 (0) | 2025.02.09 |
| [NBP] 네이버클라우드 프로젝트 아키텍처 (0) | 2023.09.21 |
Comments