Beispiel #1
0
def postPolicy(uploader):
    command = ['--os-auth-token', uploader['Auth Token'], '--os-storage-url', uploader['StorageURL'], 'post',uploader['container']]
    if 'E'  == uploader['encrypt']: # 加密上传
        command.append(uploader['showname']+'_E')
    else:
        command.append(uploader['showname'])
        
    command.append('-m')
    command.append('attr_policy:' + uploader['policy'])
    print '>>>>>>>>>>>', command
    swift.opt(command) 
Beispiel #2
0
def downloadFile(filename, authToken, storageUrl, username):
    print 'start to download : ', str(filename)
#     command = ['-A', 'http://127.0.0.1:8080/auth/v1.0', '-U', 'test:tester', '-K', 'testing','download', 'wzb']
    command = ['--os-auth-token', authToken, '--os-storage-url', storageUrl, 'download', username]
    command.extend([str(filename), '-o', '/home/wzb/datamodel/download/' + str(filename)])
    swift.opt(command)
    
    files = str(filename).split('_')
    print repr(files)
    if 'E' in files:
        writeFile('/home/wzb/datamodel/download/' + files[0], aes.decrypt(readFile('/home/wzb/datamodel/download/' + str(filename))))
        os.remove('/home/wzb/datamodel/download/' + str(filename))
Beispiel #3
0
def postPolicy(uploader):
    command = [
        '--os-auth-token', uploader['Auth Token'], '--os-storage-url',
        uploader['StorageURL'], 'post', uploader['container']
    ]
    if 'E' == uploader['encrypt']:  # 加密上传
        command.append(uploader['showname'] + '_E')
    else:
        command.append(uploader['showname'])

    command.append('-m')
    command.append('attr_policy:' + uploader['policy'])
    print '>>>>>>>>>>>', command
    swift.opt(command)
Beispiel #4
0
def uploadFile(uploaders):
    # command = ['-A', 'http://127.0.0.1:8080/auth/v1.0', '-U', 'test:tester', '-K', 'testing','upload', 'wzb']
    # filename == [realname, showname, to(容器名), enc, audit]
    command = ['--os-auth-token', uploaders['Auth Token'], '--os-storage-url', uploaders['StorageURL'], 'upload',uploaders['container']]
    if 'E'  == uploaders['encrypt']: # 加密上传
        writeFile(uploaders['showname']+'_E', aes.encrypt(readFile(str(uploaders['filename'])))) 
        command.append(uploaders['showname']+'_E')
        swift.opt(command)
        os.remove(uploaders['showname']+'_E')
    else:
        writeFile(uploaders['showname'], readFile(str(uploaders['filename'])))
        command.append(uploaders['showname'])
        swift.opt(command)
        os.remove(uploaders['showname'])
Beispiel #5
0
def uploadFile(filename, authToken, storageUrl):
    # command = ['-A', 'http://127.0.0.1:8080/auth/v1.0', '-U', 'test:tester', '-K', 'testing','upload', 'wzb']
    # filename == [realname, showname, to(容器名), enc, audit]
    command = ['--os-auth-token', authToken, '--os-storage-url', storageUrl, 'upload', filename[2]]  #  filename[2] 为容器名
    if 'E' in filename: # 加密上传
        writeFile(filename[1]+'_E', aes.encrypt(readFile(filename[0]))) 
        command.append(filename[1]+'_E')
        swift.opt(command)
        os.remove(filename[1]+'_E')
    else:
        writeFile(filename[1], readFile(filename[0]))
        command.append(filename[1])
        swift.opt(command)
        os.remove(filename[1])
Beispiel #6
0
 def deleteEvent2(self):
     '''
     删除组内对象
     '''
     content = ['--os-auth-token', self.groupInfo[self.currentGroup]['Auth Token'], '--os-storage-url', self.groupInfo[self.currentGroup]['StorageURL'], 'delete', self.currentGroupContainer]
     for i in range(self.ui.groupTable.rowCount()):
         if self.ui.groupTable.item(i, 0).checkState() == QtCore.Qt.Checked:
             content.append(str(self.ui.groupTable.item(i, 1).text()).strip())
     
     # 执行删除对象
     swift.opt(content)
     self.count2 = 0  # 删除完毕,计数为0
     
     # 删除完毕后回调更新列表
     self.freshGroupTable()
Beispiel #7
0
def downloadFile(filename, authToken, storageUrl, container):
    print 'start to download : ', str(filename)
    #     command = ['-A', 'http://127.0.0.1:8080/auth/v1.0', '-U', 'test:tester', '-K', 'testing','download', 'wzb']
    command = [
        '--os-auth-token', authToken, '--os-storage-url', storageUrl,
        'download', container
    ]
    command.extend(
        [str(filename), '-o', '/home/wzb/datamodel/download/' + str(filename)])
    rs = swift.opt(command)
    if rs == 'error':
        print rs, 'wuzebang'
        return 'forbidden'
    if not os.path.exists('/home/wzb/datamodel/download/' + str(filename)):
        return 'forbidden'

    files = str(filename).split('_')
    print repr(files)
    if 'E' in files:
        writeFile(
            '/home/wzb/datamodel/download/' + files[0],
            aes.decrypt(
                readFile('/home/wzb/datamodel/download/' + str(filename))))
        os.remove('/home/wzb/datamodel/download/' + str(filename))

    return 'succeed'
Beispiel #8
0
    def groupContainerExpanded(self, item):
        '''
        展开组下resource的所有子列,即将该组所有的容器显示出来
        '''
        if item.parent() == None:
            return
        
        groupName = str(item.parent().text(0))
        self.currentGroup = groupName
        if groupName not in self.groupInfo or 'StorageURL' not in self.groupInfo[groupName]: # 首次时,向系统获取该组内所有的容器,并更新groupInfo, 及 groupContainers
            command = ['-A', 'http://127.0.0.1:8080/auth/v1.0']
            command.extend(['-U', groupName + ':' + self.userInfo['username'], '-K', self.userInfo['username'], 'stat', '-v'])
            print "command============", command
            result = swift.opt(command)
            if groupName not in self.groupInfo:
                self.groupInfo[groupName] = { 'StorageURL' : result['StorageURL'], 'Auth Token' : result['Auth Token']}
            else:
                self.groupInfo[groupName]['StorageURL'] = result['StorageURL']
                self.groupInfo[groupName]['Auth Token'] = result['Auth Token']
            ctns = []
            for c in util.listContainer(result['Auth Token'], result['StorageURL']):
                ctns.append(c['name'])
            self.groupContainers[groupName] = ctns
#             print '------------', repr(self.groupContainers)    # 打印当前组所有的容器对象
        
        if item.child(0) == None:
            for g in self.groupContainers[groupName]:
                group1_1 = QtGui.QTreeWidgetItem(item, QtCore.QStringList(QtCore.QString(g)))
                group1_1.setIcon(0, QtGui.QIcon("res/container.png"))
                item.addChild(group1_1)
                
            if len(self.groupContainers[groupName]) > 0:    # 若容器存在,则将第一个容器的所有object显示在groupTable中 
                self.groupTreeItemClicked(item.child(0), 0)
Beispiel #9
0
 def login(self):
     username = str(self.ui.usernameEdit.text().trimmed())
     password = str(self.ui.passwordEdit.text().trimmed())
     if username == '' :
         self.ui.infoLabel.setText("input username")
         self.ui.usernameEdit.setFocus()
         return 
     if password =='':
         self.ui.infoLabel.setText("Input password")
         self.ui.passwordEdit.setFocus()
         return
     
     print 'username is : ', username
     print 'password is : ', password
     
     command = ['-A', 'http://127.0.0.1:8080/auth/v1.0']
     command.extend(['-U', username+':' + username , '-K', password, 'stat', '-v'])
     result = swift.opt(command)
     
     print 'The result is : ' , result
     
     if result is not None:
         info = {'Auth Token': result['Auth Token'], 
                     'StorageURL':result['StorageURL'], 
                     'groupList': result['x-user-group'],
                     'username' : username
                     }
         self.mainWindow = MyForm()
         self.mainWindow.show()
         self. mainWindow.setUserInfo(info)
         self.mainWindow.freshEvent()
         self.close()
     else:
         self.ui.infoLabel.setText("username or password error")
         self.ui.passwordEdit.clear()
Beispiel #10
0
    def deleteEvent(self):
        '''
        删除选中对象
        '''
#         content = ['-A', 'http://127.0.0.1:8080/auth/v1.0', '-U', 'test:tester', '-K', 'testing','delete', 'wzb']
        content = ['--os-auth-token', self.userInfo['Auth Token'], '--os-storage-url', self.userInfo['StorageURL'], 'delete', self.containerName]
        for i in range(self.ui.infoTable.rowCount()):
            if self.ui.infoTable.item(i, 0).checkState() == QtCore.Qt.Checked:
                content.append(str(self.ui.infoTable.item(i, 1).text()).strip())
        
        # 执行删除对象
        swift.opt(content)
        self.count = 0  # 删除完毕,计数为0
        self.showFrame() # 隐藏frame
        
        # 删除完毕后回调更新列表
        self.freshEvent()
Beispiel #11
0
def uploadFile(uploaders):
    # command = ['-A', 'http://127.0.0.1:8080/auth/v1.0', '-U', 'test:tester', '-K', 'testing','upload', 'wzb']
    # filename == [realname, showname, to(容器名), enc, audit]
    command = [
        '--os-auth-token', uploaders['Auth Token'], '--os-storage-url',
        uploaders['StorageURL'], 'upload', uploaders['container']
    ]
    if 'E' == uploaders['encrypt']:  # 加密上传
        writeFile(uploaders['showname'] + '_E',
                  aes.encrypt(readFile(str(uploaders['filename']))))
        command.append(uploaders['showname'] + '_E')
        swift.opt(command)
        os.remove(uploaders['showname'] + '_E')
    else:
        writeFile(uploaders['showname'], readFile(str(uploaders['filename'])))
        command.append(uploaders['showname'])
        swift.opt(command)
        os.remove(uploaders['showname'])
Beispiel #12
0
def downloadFile(filename, authToken, storageUrl, container):
    print 'start to download : ', str(filename)
#     command = ['-A', 'http://127.0.0.1:8080/auth/v1.0', '-U', 'test:tester', '-K', 'testing','download', 'wzb']
    command = ['--os-auth-token', authToken, '--os-storage-url', storageUrl, 'download', container]
    command.extend([str(filename), '-o', '/home/wzb/datamodel/download/' + str(filename)])
    rs = swift.opt(command)
    if rs == 'error':
        print rs,  'wuzebang'
        return 'forbidden'
    if not os.path.exists('/home/wzb/datamodel/download/' + str(filename)) :
        return 'forbidden'
    
    files = str(filename).split('_')
    print repr(files)
    if 'E' in files:
        writeFile('/home/wzb/datamodel/download/' + files[0], aes.decrypt(readFile('/home/wzb/datamodel/download/' + str(filename))))
        os.remove('/home/wzb/datamodel/download/' + str(filename))
    
    return 'succeed'
Beispiel #13
0
 def userAttributeItem(self):
     groupName = str(self.ui.groupTree.currentItem().text(0))
     self.currentGroup = groupName
     if groupName not in self.groupInfo or 'StorageURL' not in self.groupInfo[groupName]: # 首次时,向系统获取该组内所有的容器,并更新groupInfo, 及 groupContainers
         command = ['-A', 'http://127.0.0.1:8080/auth/v1.0']
         command.extend(['-U', groupName + ':' + self.userInfo['username'], '-K', self.userInfo['username'], 'stat', '-v'])
         print "command============", command
         result = swift.opt(command)
         if groupName not in self.groupInfo:
             self.groupInfo[groupName] = { 'StorageURL' : result['StorageURL'], 'Auth Token' : result['Auth Token']}
         else:
             self.groupInfo[groupName]['StorageURL'] = result['StorageURL']
             self.groupInfo[groupName]['Auth Token'] = result['Auth Token']
         ctns = []
         for c in util.listContainer(result['Auth Token'], result['StorageURL']):
             ctns.append(c['name'])
         self.groupContainers[groupName] = ctns
     
     attrs = self.groupInfo[groupName]['Auth Token']
     ts = attrs.split('attr')[1]
     QtGui.QMessageBox.information(self, 'Attribute',  unquote(ts),  QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
Beispiel #14
0
    def login(self):
        username = str(self.ui.usernameEdit.text().trimmed())
        password = str(self.ui.passwordEdit.text().trimmed())
        if username == '':
            self.ui.infoLabel.setText("input username")
            self.ui.usernameEdit.setFocus()
            return
        if password == '':
            self.ui.infoLabel.setText("Input password")
            self.ui.passwordEdit.setFocus()
            return

        print 'username is : ', username
        print 'password is : ', password

        command = ['-A', 'http://127.0.0.1:8080/auth/v1.0']
        command.extend(
            ['-U', username + ':' + username, '-K', password, 'stat', '-v'])
        result = swift.opt(command)

        print 'The result is : ', result

        if result is not None:
            info = {
                'Auth Token': result['Auth Token'],
                'StorageURL': result['StorageURL'],
                'groupList': result['x-user-group'],
                'username': username
            }
            self.mainWindow = MyForm()
            self.mainWindow.show()
            self.mainWindow.setUserInfo(info)
            self.mainWindow.freshEvent()
            self.close()
        else:
            self.ui.infoLabel.setText("username or password error")
            self.ui.passwordEdit.clear()
Beispiel #15
0
def listContainer(authToken, storageUrl):
    command = [
        '--os-auth-token', authToken, '--os-storage-url', storageUrl, 'list'
    ]
    return swift.opt(command)
Beispiel #16
0
def deleteContainer(authToken, storageUrl, container):
    command = [
        '--os-auth-token', authToken, '--os-storage-url', storageUrl, 'delete',
        container
    ]
    return swift.opt(command)
Beispiel #17
0
def listObject(authToken, storageUrl, username):
    command = [
        '--os-auth-token', authToken, '--os-storage-url', storageUrl, 'list',
        username, '--lh'
    ]
    return swift.opt(command)
Beispiel #18
0
def listObject(authToken, storageUrl, username):
    command = ['--os-auth-token', authToken, '--os-storage-url', storageUrl, 'list', username, '--lh']
    return swift.opt(command)
Beispiel #19
0
def deleteContainer(authToken, storageUrl, container):
    command =  ['--os-auth-token', authToken, '--os-storage-url', storageUrl, 'delete', container]
    return swift.opt(command)
Beispiel #20
0
def listContainer(authToken, storageUrl):
    command =  ['--os-auth-token', authToken, '--os-storage-url', storageUrl, 'list']
    return swift.opt(command)