예제 #1
0
    def process_changes_in_remote(self, changes):
        """
        This method is used to changes changes in Mega (synchronize).
        """

        log.debug("Processing changes in remote")

        remove_files = changes['removed_files']
        for file in remove_files:
            log.debug("Removing file %s" % file)
            status = self.uploader.remove(
                path='%s/%s' %
                (settings.get_config('remote', 'folder'), file.relative_path),
                filename=file.name)

            if not status:
                log.error("ERROR DELETING REMOTE FILE %s" % file)

        remove_folders = changes['removed_folders']
        for folder in remove_folders:
            log.debug("Removing folder %s" % folder)
            status = self.uploader.remove(path='%s/%s' % (settings.get_config(
                'remote', 'folder'), folder.relative_path),
                                          filename=folder.name)
            if not status:
                log.error("Folder not deleted correctly in remote %s" % folder)

        new_folders = changes['new_folders']
        for folder in new_folders:
            log.debug("Creating remote folder %s" % folder)
            remote_folder = '%s/%s/%s' % (settings.get_config(
                'remote', 'folder'), folder.relative_path, folder.name)
            rem_desc = self.uploader.mkdir(remote_folder)

        new_files = changes['new_files']
        for file in new_files:
            log.debug("New file %s" % file)
            remote_folder = '%s/%s' % (settings.get_config(
                'remote', 'folder'), file.relative_path)
            rem_desc = self.uploader.upload(remote_folder, file.path)

        to_download = changes['to_download']
        for file in to_download:
            log.debug("Download modified %s" % file)
            path = '%s/%s' % (settings.get_config(
                'remote', 'folder'), file.relative_path)
            content = self.uploader.get_content_by_path(path=path,
                                                        filename=file.name)
            filesystem.create_file(path=os.path.join(self.backup_path,
                                                     file.relative_path),
                                   name=file.name,
                                   content=content)

        new_files = changes['to_upload']
        for file in new_files:
            log.debug("Uploading file %s" % file)
            remote_folder = '%s/%s' % (settings.get_config(
                'remote', 'folder'), file.relative_path)
            rem_desc = self.uploader.upload(remote_folder, file.path)
예제 #2
0
    def sync_remote_home(self):
        #We have remote FS, then...
        for file in self.remote_filesystem.files:
            if file.relative_path == '/':
                file.relative_path = ''

            if file.type == filesystem.FILE:  #Else, folder
                path = '%s/%s' % (settings.get_config(
                    'remote', 'folder'), file.relative_path)
                content = self.uploader.get_content_by_path(path=path,
                                                            filename=file.name)
                filesystem.create_file(path=os.path.join(
                    self.backup_path, file.relative_path),
                                       name=file.name,
                                       content=content)
            elif file.type == filesystem.FOLDER:
                path = os.path.join(self.backup_path, file.relative_path,
                                    file.name)
                filesystem.os_mkdir(path)
예제 #3
0
파일: backup.py 프로젝트: plutec/megup
 def sync_remote_home(self):
     #We have remote FS, then...
     for file in self.remote_filesystem.files:
         if file.relative_path == '/':
             file.relative_path = ''
         
         if file.type == filesystem.FILE: #Else, folder
             path = '%s/%s' % (settings.get_config('remote', 'folder'),
                                  file.relative_path)
             content = self.uploader.get_content_by_path(path=path,
                                                         filename=file.name)
             filesystem.create_file(
                     path=os.path.join(
                            self.backup_path,
                            file.relative_path),
                     name=file.name, 
                     content=content)
         elif file.type == filesystem.FOLDER:
             path = os.path.join(self.backup_path,
                                  file.relative_path,
                                  file.name)
             filesystem.os_mkdir(path)
예제 #4
0
파일: backup.py 프로젝트: plutec/megup
    def process_changes_in_remote(self, changes):
        """
        This method is used to changes changes in Mega (synchronize).
        """

        log.debug("Processing changes in remote")
        
        remove_files = changes['removed_files']
        for file in remove_files:
            log.debug("Removing file %s" % file)
            status = self.uploader.remove(
                path='%s/%s' % (settings.get_config('remote', 'folder'),
                                file.relative_path),
                filename=file.name)

            if not status:
                log.error("ERROR DELETING REMOTE FILE %s" % file)


        remove_folders = changes['removed_folders']
        for folder in remove_folders:
            log.debug("Removing folder %s" % folder)
            status = self.uploader.remove(
            path='%s/%s' % (settings.get_config('remote', 'folder'),
                            folder.relative_path),
            filename=folder.name)
            if not status:
                log.error("Folder not deleted correctly in remote %s" % folder)

        new_folders = changes['new_folders']
        for folder in new_folders:
            log.debug("Creating remote folder %s" % folder)
            remote_folder = '%s/%s/%s' % (
                                        settings.get_config('remote', 'folder'), 
                                        folder.relative_path,
                                        folder.name)
            rem_desc = self.uploader.mkdir(remote_folder)
        
        new_files = changes['new_files']
        for file in new_files:
            log.debug("New file %s" % file)
            remote_folder = '%s/%s' % (settings.get_config('remote', 'folder'), 
                                       file.relative_path)
            rem_desc = self.uploader.upload(remote_folder, file.path)


        to_download = changes['to_download']
        for file in to_download:
            log.debug("Download modified %s" % file)
            path = '%s/%s' % (settings.get_config('remote', 'folder'),
                                                        file.relative_path)
            content = self.uploader.get_content_by_path(path=path,
                                                        filename=file.name)
            filesystem.create_file(
                    path=os.path.join(
                           self.backup_path,
                           file.relative_path),
                    name=file.name, 
                    content=content)
        
        new_files = changes['to_upload']
        for file in new_files:
            log.debug("Uploading file %s" % file)
            remote_folder = '%s/%s' % (settings.get_config('remote', 'folder'),
                                file.relative_path)
            rem_desc = self.uploader.upload(remote_folder, file.path)