def download_from_gcs()

in infra-as-code/modules/audio-data-format-change/function-source-code/lib.py [0:0]


  def download_from_gcs(self):
    """Downloads a specific the triggering blob from the trigger bucket in GCS
        and stores it in a temporary file which is renamed by assigning an UUID 

    Returns:
        string: New filename assigned to the downloaded blob
    """
    print('Starting download')


    encoding = hashlib.sha256

    trigger_file = self.get_folder_and_filename(self.raw_audio_file_name)
    self.raw_audio_file_extension = trigger_file.split('.')[-1]

    new_uuid = str(uuid.uuid4())
    new_filename = f'{new_uuid}.{self.raw_audio_file_extension}'
    
    self.metadata['original_file_name'] = hmac.new(self.hash_key, trigger_file.encode(), encoding).hexdigest()
    self.metadata['conversation_id']= new_uuid

    filename = f'/tmp/{new_filename}'
    print(f'Filename: {self.raw_audio_file_name}. File extension: {self.raw_audio_file_extension}')

    try:
      bucket = self.storage_client.bucket(self.raw_audio_bucket_id)
      blob = bucket.blob(self.raw_audio_file_name)
      blob.download_to_filename(filename)

      print(f'Blob {self.raw_audio_file_name} downloaded to {filename}')
    except Exception as e:
      raise e

    return new_filename, trigger_file