def test_fmgr_copy(self): srckey = '2.doc' dstkey = '1.doc' resource = urlsafe_base64_encode('%s:%s' % (self.bucket, srckey)) fops = 'resource/%s/bucket/%s/key/%s' % ( resource, urlsafe_base64_encode( self.bucket), urlsafe_base64_encode(dstkey)) debug(self.cli.fmgr_copy(fops))
def test_fmgr_fetch(self): url = 'http://a20170704-weihb.w.wcsapi.biz.matocloud.com/1.doc' key = '1.doc' fetchurl = urlsafe_base64_encode(url) enbucket = urlsafe_base64_encode(self.bucket) enkey = urlsafe_base64_encode(key) fops = 'fetchURL/%s/bucket/%s/key/%s' % (fetchurl, enbucket, enkey) debug(self.cli.fmgr_fetch(fops))
def test_fmgr_fetch(self): url = 'http://www.example.com/1.doc' key = '' fetchurl = urlsafe_base64_encode(url) enbucket = urlsafe_base64_encode(self.bucket) enkey = urlsafe_base64_encode(key) fops = 'fetchURL/%s/bucket/%s/key/%s' % (fetchurl, enbucket, enkey) debug(self.cli.fmgr_fetch(fops))
def test_fmgr_fetch(self): url = 'http://big-caiyz-fmgr-cache.com/1m.jpg' key = 'fetch_1m.jpg' fetchurl = urlsafe_base64_encode(url) enbucket = urlsafe_base64_encode(self.bucket) enkey = urlsafe_base64_encode(key) fops = 'fetchURL/%s/bucket/%s/key/%s' % (fetchurl, enbucket, enkey) return_data = self.cli.fmgr_fetch(fops) debug(return_data) self.assertEqual(return_data[0],200)
def setdeadline(self, bucket, key, deadline): url = https_check('{0}/setdeadline'.format(self.mgr_host)) param = {'bucket': urlsafe_base64_encode(bucket)} param['key'] = urlsafe_base64_encode(key) param['deadline'] = deadline body = super(BucketManager, self)._params_parse(param) debug('Set deadline of %s to %s' % (key, deadline)) return _post(url=url, data=body, headers=super(BucketManager, self)._gernerate_headers(url, body))
def test_fmgr_delete(self): path = 'F:\\5_.zip' key = '5_.zip' self.cfg.overwrite = 1 self.cli.multipart_upload(path, self.bucket, key) enbucket = urlsafe_base64_encode(self.bucket) enkey = urlsafe_base64_encode(key) fops = 'bucket/%s/key/%s' % (enbucket, enkey) return_data = self.cli.fmgr_delete(fops) debug(return_data) self.assertEqual(return_data[0],200)
def test_fmgr_prefix_del(self): path = 'F:\\5_.zip' key = 'aa/5_.zip' self.cfg.overwrite = 1 self.cli.multipart_upload(path, self.bucket, key) prefix = 'aa' enbucket = urlsafe_base64_encode(self.bucket) enprefix = urlsafe_base64_encode(prefix) fops = 'bucket/%s/prefix/%s' % (enbucket, enprefix) return_data = self.cli.prefix_delete(fops) debug(return_data) self.assertEqual(return_data[0],200)
def test_fmgr_copy(self): path = 'F:\\5_.zip' key = '5_.zip' self.cfg.overwrite = 1 self.cli.multipart_upload(path, self.bucket, key) srckey = key dstkey = '5_4.zip' resource = urlsafe_base64_encode('%s:%s' % (self.bucket,srckey)) fops = 'resource/%s/bucket/%s/key/%s' % (resource,urlsafe_base64_encode(self.bucket), urlsafe_base64_encode(dstkey)) return_data = self.cli.fmgr_copy(fops) debug(return_data) self.assertEqual(return_data[0],200)
def bucketlist(self, bucket, prefix=None, marker=None, limit=None, mode=None, starttime=None, endtime=None): options = { 'bucket': bucket, } if marker: options['marker'] = marker if limit: if limit in self._limit_check(): options['limit'] = limit else: error('Invalid limit ! Please redefine limit') raise ValueError("Invalid limit") if prefix: options['prefix'] = urlsafe_base64_encode(prefix) if mode == 1 or mode == 0: options['mode'] = mode if starttime: options['startTime'] = starttime if endtime: options['endTime'] = endtime url = https_check(self._make_url('list', options)) if options: debug('List options is %s' % options) debug('List bucket %s' % bucket) return _get(url=url, headers=super(BucketManager, self)._gernerate_headers(url))
def test_fmgr_m3u8_del(self): self.cfg.overwrite = 1 key = 'M3U8_FILE.m3u8' key_ts = '000001.ts' path = 'E:\\m3u8\\M3U8_FILE.m3u8' path_ts = 'E:\\m3u8\\000001.ts' debug('start to upload m3u8') self.cli.simple_upload(path, self.bucket, key) debug('start to upload ts file') self.cli.simple_upload(path_ts, self.bucket, key_ts) enbucket = urlsafe_base64_encode(self.bucket) enkey = urlsafe_base64_encode(key) fops = 'bucket/%s/key/%s' % (enbucket, enkey) return_data = self.cli.m3u8_delete(fops) debug(return_data) self.assertEqual(return_data[0],200)
def execute(self, fops, bucket, key, force=0, separate=0, notifyurl=None): data = { 'bucket': urlsafe_base64_encode(bucket), 'key': urlsafe_base64_encode(key), 'fops': urlsafe_base64_encode(fops) } if notifyurl is not None: data['notifyURL'] = urlsafe_base64_encode(notifyurl) if force == 1: data['force'] = 1 if separate == 1: data['separate'] = 1 url = https_check('{0}/fops'.format(self.mgr_host)) headers, reqdata = self._gernerate_headers(url, data) debug('PersistentFops is %s' % fops) debug('Start to post persistentFops') return _post(url=url, data=reqdata, headers=headers)
def _parse_fops(self, fops): data = [fops] if self.cfg.notifyurl: data.append('notifyURL=%s' % urlsafe_base64_encode(self.cfg.notifyurl)) if self.cfg.separate: data.append('separate=%s' % self.cfg.separate) if self.cfg.force: data.append('force=%s' % self.cfg.force) return 'fops=' + '&'.join(data)
def uploadtoken(self, putPolicy): """ input: Put Policy return: uploadtoken """ current = int(time.mktime(datetime.now().timetuple())) * 1000 if 'deadline' not in putPolicy.keys( ) or putPolicy['deadline'] > current: putPolicy['deadline'] = current + 7200000 jsonputPolicy = json.dumps(putPolicy) #encodePutPolicy = base64.b64encode(jsonputPolicy) encodePutPolicy = urlsafe_base64_encode(jsonputPolicy) Sign = hmac.new(self.secret_key.encode('utf-8'), encodePutPolicy.encode('utf-8'), sha1) #encodeSign = base64.b64encode(Sign.hexdigest()) encodeSign = urlsafe_base64_encode(Sign.hexdigest()) return '{0}:{1}:{2}'.format(self.access_key, encodeSign, encodePutPolicy)
def image_detect(self, image, dtype, bucket): url = https_check('{0}/imageDetect'.format(self.mgr_host)) param = {'image': urlsafe_base64_encode(image)} param['type'] = dtype param['bucket'] = bucket body = super(BucketManager, self)._params_parse(param) debug('image detect for %s to %s' % (image, dtype)) return _post(url=url, data=body, headers=super(BucketManager, self)._gernerate_headers(url, body))
def cut_video(self): saves_base64 = urlsafe_base64_encode('%s:%s.m3u8' % (self.bucket, self.file_prefix)) second_time = self.format_second(str_time=argv_time) fops = 'avthumb/m3u8/preset/video_640k/ss/%s|saveas/%s' % (second_time, saves_base64) res = self.cli.ops_execute(fops, self.bucket, argv_file_name) if res[0] == 200: print("[INFO] 提交切割视频任务成功") else: print(res) print("[ERROR] 提交切割失败") print(res) sys.exit(1) persistent_id = res[1]['persistentId'] return persistent_id
def bucket_statistics(self, name, stype, startdate, enddate, isListDetails='false'): encode_name = urlsafe_base64_encode(name) options = { 'name': encode_name, 'type': stype, 'startdate': startdate, 'enddate': enddate } url = https_check(self._make_url('bucket/statistics', options)) debug('Now get bucket %s of %s from %s to %s' % (stype, name, startdate, enddate)) return _get(url=url, headers=super(BucketManager, self)._gernerate_headers(url))
def bucket_stat(self, name, startdate, enddate, isListDetails='false', storageType=None): encode_name = urlsafe_base64_encode(name) options = { 'name': encode_name, 'startdate': startdate, 'enddate': enddate, 'isListDetails': isListDetails } if storageType: options['storageType'] = str(storageType) url = https_check(self._make_url('bucket/stat', options)) debug('Now check storage of %s from %s to %s' % (name, startdate, enddate)) return _get(url=url, headers=super(BucketManager, self)._gernerate_headers(url))
def managertoken(self, url, body=None): """ input: url & body(optional) return: managertoken """ parsed_url = urlparse(url) query = parsed_url.query path = parsed_url.path if query: if body: signingStr = ''.join([path, '?', query, "\n", body]) else: signingStr = ''.join([path, '?', query, "\n"]) else: if body: signingStr = ''.join([path, "\n", body]) else: signingStr = ''.join([path, "\n"]) SignStr = hmac.new(self.secret_key.encode('utf-8'), signingStr.encode('utf-8'), sha1) encodeSignStr = urlsafe_base64_encode(SignStr.hexdigest()) return '{0}:{1}'.format(self.access_key, encodeSignStr)
def test_fmgr_prefix_del(self): prefix = 'test' enbucket = urlsafe_base64_encode(self.bucket) enprefix = urlsafe_base64_encode(prefix) fops = 'bucket/%s/prefix/%s' % (enbucket, enprefix) debug(self.cli.prefix_delete(fops))
def test_fmgr_delete(self): key = '1.doc' enbucket = urlsafe_base64_encode(self.bucket) enkey = urlsafe_base64_encode(key) fops = 'bucket/%s/key/%s' % (enbucket, enkey) debug(self.cli.fmgr_delete(fops))
def _make_move_url(self, srcbucket, srckey, dstbucket, dstkey): src = urlsafe_base64_encode('%s:%s' % (srcbucket, srckey)) dst = urlsafe_base64_encode('%s:%s' % (dstbucket, dstkey)) url = '{0}/move/{1}/{2}'.format(self.mgr_host, src, dst) return https_check(url)
def test_fmgr_m3u8_del(self): key = 'Wildlife111.wmv' enbucket = urlsafe_base64_encode(self.bucket) enkey = urlsafe_base64_encode(key) fops = 'bucket/%s/key/%s' % (enbucket, enkey) debug(self.cli.m3u8_delete(fops))