1 분 소요

cloud functions으로 가공된 json 파일 올리는 방법

from google.cloud import storage


def make_blob_public(bucket_name, blob_name):
    """Makes a blob publicly accessible."""
    # bucket_name = "your-bucket-name"
    # blob_name = "your-object-name"

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

    blob.make_public()

    print(
        f"Blob {blob.name} is publicly accessible at {blob.public_url}"
    )
def push_to_gcs(file):
    """ Writes to Google Cloud Storage. """
    file_name = file.split('/')[-1]
    print(f"Pushing {file_name} to GCS...")
    blob = bucket.blob(file_name)
    blob.upload_from_filename(file)
    print(f"File pushed to {blob.id} succesfully.")

cloud functinos 사용

from google.cloud import storage

storage_client = storage.Client()

def hello_gcs_generic(data, context):
    bucket = storage_client.get_bucket(data['bucket'])
    blob = bucket.blob(data['name'])
    contents = blob.download_as_string()
    print(contents)
download_data = file_blob.download_as_string().decode() UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 11: invalid start byte
  • download_as_bytes() 사용해보기 -> encoding=’utf-8’ 은 안되는데,,
  1. 백에서 storage로 pdf 파일이 올라온다.
  2. storage url을 이용해서 파일을 임시 파일로 저장한다. -> /workspace 경로로 파일이 다운이 되는가
  3. 임시 파일을 사용해서 get_text 함수에 넣는다.

일단,, 여기까지 하자고,,

def create_file(file_name, file_content):
    """ Creates a file on runtime. """
    file_path = '/tmp/' + file_name
    file_path = path.join(root, file_path)

    # If file is a binary, we rather use 'wb' instead of 'w'
    with open(file_path, 'w') as file:
        file.write(file_content)

/tmp/를 넣어야되나,,,,

임시 파일 저장 이슈

결국 링크 1번으로 해결,,

댓글남기기