def upload(self): """ Upload tar.gz stored at self.disk_to_upload to Google storage """ try: # Populate the bucket if not already. if self.bucket is None: self.init_bucket() # form blob name prefix = datetime.datetime.now().strftime('%Y%m%d') + '/' self.uploaded_disk_name = prefix + BaseDisk.decorate_disk_name(self.disk_to_upload) # delete the blob if it exists self.delete_blob() # create blob blob = self.bucket.blob(self.uploaded_disk_name) if blob is None: raise RuntimeError("Factory constructor for blob '{}' failed." .format(self.uploaded_disk_name)) # upload blob LOGGER.info("Started to upload '%s' at '%s'.", self.uploaded_disk_name, datetime.datetime.now().strftime('%H:%M:%S')) blob.upload_from_filename(self.disk_to_upload) LOGGER.info("Finished to upload '%s' at '%s'.", self.uploaded_disk_name, datetime.datetime.now().strftime('%H:%M:%S')) if not blob.exists(): raise RuntimeError("Uploading blob '{}' failed.".format(self.uploaded_disk_name)) except RuntimeError as exception: LOGGER.exception(exception) raise exception
def upload(self): """Upload the disk to the s3 bucket represented by AWS_BUCKET""" try: if self.is_bucket_exist() is False: LOGGER.debug("Creating '%s' bucket as it doesn't exist.", self.bucket_name) self.create_bucket() self.uploaded_disk_name = BaseDisk.decorate_disk_name( self.disk_to_upload) LOGGER.info("Uploading '%s' to the bucket '%s'.", self.uploaded_disk_name, self.bucket_name) self.s3_client.upload_file(self.disk_to_upload, self.bucket_name, self.uploaded_disk_name) LOGGER.info("Successfully uploaded '%s'.", self.uploaded_disk_name) except ClientError as client_error: LOGGER.exception(client_error) raise RuntimeError("AWS upload disk operation failed.")