불러온 데이터를 클라우드에 저장 - Python

Author

김희영

Published

October 4, 2022

import pandas as pd
df = pd.read_csv('df.csv')
df.head(5)

이전에 Open API 호출 후 저장한 로컬 CSV 파일을 불러옵니다. head 함수를 통해 5개 행만 확인해보면 위와 같습니다.

Amazon S3

import boto3

boto3를 이용하여 S3로 접근합니다. 인증은 configparser에 미리 입력한 s3 access_key, secret_key를 불러 와서 진행합니다.

import configparser
# load the aws_boto_credentials values
parser = configparser.ConfigParser()
parser.read("../../key.conf")
access_key = parser.get(
    "aws_boto_credentials",
    "access_key")
secret_key = parser.get(
    "aws_boto_credentials",
    "secret_key")
bucket_name = parser.get(
    "aws_boto_credentials",
    "bucket_name")
s3 = boto3.client(
    's3',
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_key)

boto3.client 로 s3 서비스 클라이언트를 정의합니다.

local_filename = 'df.csv'
s3_file = local_filename

local 내 파일 이름과 s3에서 저장되는 이름을 동일하게 합니다.

s3.upload_file(
    local_filename,
    bucket_name,
    s3_file)

정의한 s3 객체의 upload_file 함수로 s3 버킷에 csv 파일을 업로드합니다.

Google Cloud Storage

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/Users/hyk/Documents/quarto/sigolyori/sigolyori-c52788774166.json"
project = 'sigolyori'
bucket_name = 'hyk-bucket'
source_file_name = 'df.csv'
destination_blob_name = source_file_name
from google.cloud import storage
def upload_blob(bucket_name, source_file_name, destination_blob_name):
    """Uploads a file to the bucket."""
    # The ID of your GCS bucket
    # bucket_name = "your-bucket-name"
    # The path to your file to upload
    # source_file_name = "local/path/to/file"
    # The ID of your GCS object
    # destination_blob_name = "storage-object-name"

    storage_client = storage.Client()
    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print(
        f"File {source_file_name} uploaded to {destination_blob_name}."
    )
upload_blob(bucket_name, source_file_name, destination_blob_name)