Exemple #1
0
    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.")