Exemple #1
0
    def upload(self, remove_local_data_file=True, overwrite=True):
        for record in self:
            try:
                file_full_path = os.path.join(config.get('data_dir'),
                                              record.file)
                if not os.path.exists(file_full_path):
                    _logger.error(
                        "Cannot find file ({}), thus not uploading".format(
                            file_full_path))
                    continue

                blob = BlobClient(account_url=record.storage_account_url,
                                  container_name=record.container,
                                  blob_name=record.blob_name,
                                  credential=record.credential)

                try:
                    record._do_upload(blob, file_full_path)
                except ResourceExistsError as ex:
                    if not overwrite:
                        _logger.info(
                            "El fichero existe, no sd sobreescribe por que overwrite=False"
                        )
                        continue
                    _logger.debug("El fichero existe, hay que sobreescribirlo")
                    blob.delete_blob()
                    _logger.debug(
                        "El fichero se ha borrado para sobreescribirlo")
                    record._do_upload(blob, file_full_path)

                if remove_local_data_file: os.unlink(file_full_path)
            except Exception as ex:
                _logger.error("Error uploading to Blob: type({}), {}".format(
                    type(ex), ex))
                continue
Exemple #2
0
 def delete_blob(self, blob_name):
     try:
         blob = BlobClient(account_url=env.AZURE_STORAGE_ACCOUNT,
                           container_name=self.container_name,
                           blob_name=blob_name,
                           credential=env.STORAGE_SAS_KEY)
         blob.delete_blob()
     except azure.core.exceptions.ResourceNotFoundError:
         logger.info('Blob not found %s', blob_name)
 def remove_files(self, location, file_pattern):
     result, sources, source_names = self.list_files(location=location, file_pattern=file_pattern)
     if result["code"] == "OK":
         for file in sources:
             try:
                 src_blob = BlobClient(
                     self.blob_service_client.url,
                     container_name=self.settings.storage_container,
                     blob_name=file,
                     credential=self.sas_token
                 )
                 src_blob.delete_blob(delete_snapshots="include")
                 print("blob removed:", file)
             except Exception as e:
                 print("Exception on blob removal:", e)
                 result = messages.message["remove_files_failed"]
     return result
Exemple #4
0
    def test_upload(self):

        blob = BlobClient(account_url=self.blob.storage_account_url,
                          container_name=self.blob.container,
                          blob_name=self.blob.blob_name,
                          credential=self.blob.credential)

        try:
            blob.get_blob_properties()
            blob.delete_blob()
        except ResourceNotFoundError:
            pass

        _logger.debug("TEST: Subir fichero sin borrar el local")
        self.blob.upload(remove_local_data_file=False)
        assert os.path.exists(
            _data_path
        ), "Ha borrado el fichero local tras la subida a Blob Storage"

        _logger.debug(
            "TEST: Subir fichero que ya esta subido y se sobreescribe sin problemas y no se borra la copia local"
        )
        try:
            self.blob.upload(remove_local_data_file=False)
        except ResourceExistsError:
            self.fail(
                "Ha dado un error de blob existente, cuando deberia haberlo sobreescrito"
            )

        assert os.path.exists(
            _data_path
        ), "Ha borrado el fichero local tras la subida a Blob storage"

        _logger.debug(
            "TEST: Se sube un fichero sobreescribiendo y borrando la copia local"
        )
        self.blob.upload()
        assert not os.path.exists(_data_path)