"""Transfer from s3 to s3.""" from video.connectors import s3 from video.constants import assets from video.constants import job_io_fields from video.logic.activity_task_logger import activity_task_logger from video.models import ows_video JOB_INPUTS = [ job_io_fields.INPUT_VIDEO_S3_BUCKET, job_io_fields.INPUT_VIDEO_S3_KEY, job_io_fields.WORKFLOW_JOB_ID, job_io_fields.TRANSFER_FROM_S3_TO_S3_JOB_ID ] @activity_task_logger(JOB_INPUTS) def transfer_from_s3_to_s3(inputs): """Transfer from s3 to s3. Args: inputs (dict): Inputs. Returns: dict: Outputs. """ job_id = inputs[job_io_fields.TRANSFER_FROM_S3_TO_S3_JOB_ID] job = ows_video.get_job(job_id) input_video_s3_bucket = job['inputs'][job_io_fields.INPUT_VIDEO_S3_BUCKET] input_video_s3_key = job['inputs'][job_io_fields.INPUT_VIDEO_S3_KEY] workflow_job_id = inputs[job_io_fields.WORKFLOW_JOB_ID] output_video_s3_bucket = assets.VIDEO_S3_BUCKET output_video_s3_key = assets.RAW_S3_KEY_TEMPLATE.format( workflow_job_id=workflow_job_id, file_name=input_video_s3_key.replace(assets.INGEST_INCOMING_PATH, '')) outputs = { job_io_fields.INPUT_VIDEO_S3_BUCKET: output_video_s3_bucket, job_io_fields.INPUT_VIDEO_S3_KEY: output_video_s3_key, } s3_client = s3.get_s3_client() s3_client.copy( { 'Bucket': input_video_s3_bucket, 'Key': input_video_s3_key }, Bucket=output_video_s3_bucket, Key=output_video_s3_key ) s3_client.delete_object( Bucket=input_video_s3_bucket, Key=input_video_s3_key ) return outputs