[03월 29일] Google Cloud Functions 사용기
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 사용
- 링크 1 -> 내가 하려는 거랑 꽤 유사
- 링크 2 -> main.py/requirement.txt 깃허브
- How to write and get a JSON file in Google Cloud Storage Bucket?
- 임시 파일 저장?
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’ 은 안되는데,,
- 백에서 storage로 pdf 파일이 올라온다.
- storage url을 이용해서 파일을 임시 파일로 저장한다. -> /workspace 경로로 파일이 다운이 되는가
- 임시 파일을 사용해서 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번으로 해결,,
댓글남기기