コード例 #1
0
    def porn_detect_file(self, porn_file):
        auth = Auth(self._secret_id, self._secret_key)
        sign = auth.get_porn_detect_sign()
        app_info = conf.get_app_info()

        if False == sign:
            return {
                'code':9,
                'message':'Secret id or key is empty.',
                'data':{},
            }

        url = app_info['end_point_porndetect']
        header = {
            'Authorization':sign,
        }
        files = {
            'appid':(None,app_info['appid'],None),
            'bucket':(None,app_info['bucket'],None),
        }
        i=0
        for pfile in porn_file:
            local_path = os.path.abspath(pfile)
            if not os.path.exists(local_path):
                return {'httpcode':0, 'code':self.IMAGE_FILE_NOT_EXISTS, 'message':'file ' + pfile + ' not exists', 'data':{}}
            i+=1
            files['image['+str(i-1)+']']=(pfile,open(local_path,'rb'),None)

        r = requests.post(url, headers=header, files=files)
        ret = r.json()

        return ret
コード例 #2
0
    def porn_detect_url(self, porn_url):
        auth = Auth(self._secret_id, self._secret_key)
        sign = auth.get_porn_detect_sign()
        app_info = conf.get_app_info()

        if False == sign:
            return {
                'code': 9,
                'message': 'Secret id or key is empty.',
                'data': {},
            }

        url = app_info['end_point_porndetect']
        payload = {
            'bucket': app_info['bucket'],
            'appid': int(app_info['appid']),
            'url_list': porn_url,
        }
        header = {
            'Authorization': sign,
            'Content-Type': 'application/json',
        }
        r = {}
        r = requests.post(url, data=json.dumps(payload), headers=header)
        ret = r.json()

        return ret
コード例 #3
0
ファイル: auth.py プロジェクト: EdisonLiang/python-sdk
    def get_app_sign_v2(self, bucket, fileid, expired=0, userid='0'):
        """ GET V2 SIGN USE FILEID 
        copy and del operation must have fileid and set expired=0

        Args:
            bucket: user bucket
            fileid: user defined fileid, not urlencoded
            expired: expire time
            userid: user id, pls ignore or set to '0'
        """
        if not self._secret_id or not self._secret_key:
            return self.AUTH_SECRET_ID_KEY_ERROR

        app_info = conf.get_app_info()
        appid   = app_info['appid']

        puserid = ''
        if userid != '':
            if len(userid) > 64:
                return self.AUTH_URL_FORMAT_ERROR
            puserid = userid

        now = int(time.time())
        rdm = random.randint(0, 999999999)
        plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&e=' + str(expired) + '&t=' + str(now) + '&r=' + str(rdm) + '&u=' + puserid + '&f=' + fileid
        
        if isinstance(plain_text, str):
            plain_text = plain_text.encode("utf-8")

        bin = hmac.new(self._secret_key.encode('ascii'), plain_text, hashlib.sha1)
        s = bin.hexdigest()
        s = binascii.unhexlify(s)
        s = s + plain_text
        signature = base64.b64encode(s).rstrip()    #生成签名
        return signature.decode('ascii')
コード例 #4
0
    def porn_detect_url(self, porn_url):
        auth = Auth(self._secret_id, self._secret_key)
        sign = auth.get_porn_detect_sign()
        app_info = conf.get_app_info()

        if False == sign:
            return {
                'code':9,
                'message':'Secret id or key is empty.',
                'data':{},
            }

        url = app_info['end_point_porndetect']
        payload = {
            'bucket':app_info['bucket'],
            'appid':int(app_info['appid']),
            'url_list':porn_url,
        }
        header = {
            'Authorization':sign,
            'Content-Type':'application/json',
        }
        r = {}
        r = requests.post(url, data=json.dumps(payload), headers=header)
        ret = r.json()

        return ret
コード例 #5
0
ファイル: auth.py プロジェクト: cash2one/koudaizhuanjia.com
    def get_app_sign_v2(self, bucket, fileid, expired=0, userid='0'):
        """ GET V2 SIGN USE FILEID 
        copy and del operation must have fileid and set expired=0

        Args:
            bucket: user bucket
            fileid: user defined fileid, not urlencoded
            expired: expire time
            userid: user id, pls ignore or set to '0'
        """
        if not self._secret_id or not self._secret_key:
            return self.AUTH_SECRET_ID_KEY_ERROR

        app_info = conf.get_app_info()
        appid   = app_info['appid']

        puserid = ''
        if userid != '':
            if len(userid) > 64:
                return self.AUTH_URL_FORMAT_ERROR
            puserid = userid

        now = int(time.time())
        rdm = random.randint(0, 999999999)
        plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&e=' + str(expired) + '&t=' + str(now) + '&r=' + str(rdm) + '&u=' + puserid + '&f=' + fileid
        bin = hmac.new(self._secret_key, plain_text, hashlib.sha1)
        s = bin.hexdigest()
        s = binascii.unhexlify(s)
        s = s + plain_text.encode('ascii')
        signature = base64.b64encode(s).rstrip()    #生成签名
        return signature
コード例 #6
0
ファイル: imagev2.py プロジェクト: EdisonLiang/python-sdk
 def generate_res_url_v2(self, bucket, userid='0', fileid='', oper=''):
     app_info = conf.get_app_info()
     if fileid:
         if oper:
             return app_info['end_point_v2'] + str(app_info['appid']) + '/' + str(bucket) + '/' + str(userid) + '/' + str(fileid) + '/' + oper
         else:
             return app_info['end_point_v2'] + str(app_info['appid']) + '/' + str(bucket) + '/' + str(userid) + '/' + str(fileid)
     else:
         return app_info['end_point_v2'] + str(app_info['appid']) + '/' + str(bucket) + '/' + str(userid)
コード例 #7
0
ファイル: video.py プロジェクト: EdisonLiang/python-sdk
 def generate_res_url(self, userid='0', fileid='', oper=''):
     app_info = conf.get_app_info('video')
     if fileid:
         if oper:
             return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid) + '/' + oper
         else:
             return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid)
     else:
         return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid)
コード例 #8
0
ファイル: imagev2.py プロジェクト: EdisonLiang/python-sdk
 def generate_res_url(self, userid = '0', fileid = '', oper = ''):
     app_info = conf.get_app_info()
     if fileid:
         fileid = urllib.quote_plus(fileid);
         if oper:
             return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid) + '/' + oper
         else:
             return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid)
     else:
         return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid)
コード例 #9
0
ファイル: image.py プロジェクト: EdisonLiang/python-sdk
 def generate_res_url(self, userid="0", fileid="", oper=""):
     app_info = conf.get_app_info()
     if fileid:
         if oper:
             return (
                 app_info["end_point"] + str(app_info["appid"]) + "/" + str(userid) + "/" + str(fileid) + "/" + oper
             )
         else:
             return app_info["end_point"] + str(app_info["appid"]) + "/" + str(userid) + "/" + str(fileid)
     else:
         return app_info["end_point"] + str(app_info["appid"]) + "/" + str(userid)
コード例 #10
0
ファイル: auth.py プロジェクト: EdisonLiang/python-sdk
 def get_info_from_url_v2(self, url):
     app_info = conf.get_app_info()
     end_point = app_info['end_point_v2']
     info = urlparse(url)
     end_point_info = urlparse(end_point)
     if (info.hostname == urlparse(conf.API_IMAGE_END_POINT_V2).hostname) :
         # 非下载url
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 6:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 bucket = parts[4]
                 userid = parts[5]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid}
             elif len(parts) == 7:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 bucket = parts[4]
                 userid = parts[5]
                 fileid = parts[6]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid}
             elif len(parts) == 8:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 bucket = parts[4]
                 userid = parts[5]
                 fileid = parts[6]
                 oper = parts[7]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid, 'oper':oper}
             else:
                 return {}
         else:
             return {}
     else :
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 arr = parts[1].split('-')
                 if len(arr) != 2:
                     return {}
                 bucket = arr[0]
                 appid = arr[1]
                 userid = parts[2]
                 fileid = parts[3]
                 style = parts[4]
                 return {'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid, 'style':style}
             else:
                 return {}
         else:
             return {}                
コード例 #11
0
ファイル: auth.py プロジェクト: cash2one/koudaizhuanjia.com
 def get_info_from_url_v2(self, url):
     app_info = conf.get_app_info()
     end_point = app_info['end_point_v2']
     info = urlparse(url)
     end_point_info = urlparse(end_point)
     if (info.hostname == urlparse(conf.API_IMAGE_END_POINT_V2).hostname) :
         # 非下载url
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 6:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 bucket = parts[4]
                 userid = parts[5]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid}
             elif len(parts) == 7:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 bucket = parts[4]
                 userid = parts[5]
                 fileid = parts[6]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid}
             elif len(parts) == 8:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 bucket = parts[4]
                 userid = parts[5]
                 fileid = parts[6]
                 oper = parts[7]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid, 'oper':oper}
             else:
                 return {}
         else:
             return {}
     else :
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 arr = parts[1].split('-')
                 if len(arr) != 2:
                     return {}
                 bucket = arr[0]
                 appid = arr[1]
                 userid = parts[2]
                 fileid = parts[3]
                 style = parts[4]
                 return {'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid, 'style':style}
             else:
                 return {}
         else:
             return {}
コード例 #12
0
ファイル: image.py プロジェクト: EdisonLiang/python-sdk
 def generate_res_url(self, userid='0', fileid='', oper=''):
     app_info = conf.get_app_info()
     if fileid:
         if oper:
             return app_info['end_point'] + str(
                 app_info['appid']) + '/' + str(userid) + '/' + str(
                     fileid) + '/' + oper
         else:
             return app_info['end_point'] + str(
                 app_info['appid']) + '/' + str(userid) + '/' + str(fileid)
     else:
         return app_info['end_point'] + str(
             app_info['appid']) + '/' + str(userid)
コード例 #13
0
 def generate_res_url_v2(self, bucket, userid='0', fileid='', oper=''):
     app_info = conf.get_app_info()
     if fileid:
         fileid = urllib.quote_plus(fileid)
         if oper:
             return app_info['end_point_v2'] + str(
                 app_info['appid']) + '/' + str(bucket) + '/' + str(
                     userid) + '/' + str(fileid) + '/' + oper
         else:
             return app_info['end_point_v2'] + str(
                 app_info['appid']) + '/' + str(bucket) + '/' + str(
                     userid) + '/' + str(fileid)
     else:
         return app_info['end_point_v2'] + str(
             app_info['appid']) + '/' + str(bucket) + '/' + str(userid)
コード例 #14
0
ファイル: auth.py プロジェクト: fikimbing/image-python-sdk
 def get_porn_detect_sign(self, url=None):
     app_info = conf.get_app_info()
     appid = app_info['appid']
     bucket = app_info['bucket']
     expired = int(time.time()) + 1000
     current = int(time.time())
     #url_dic = {'l':url}
     #plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&t=' + str(current) + '&e=' + str(expired) + '&' + urllib.urlencode(url_dic)
     plain_text = 'a=' + appid + '&b=' + bucket + '&k=' + self._secret_id + '&t=' + str(
         current) + '&e=' + str(expired)
     bin = hmac.new(self._secret_key, plain_text, hashlib.sha1)
     s = bin.hexdigest()
     s = binascii.unhexlify(s)
     s = s + plain_text
     signature = base64.b64encode(s).rstrip()  #生成签名
     return signature
コード例 #15
0
ファイル: auth.py プロジェクト: EdisonLiang/python-sdk
 def get_info_from_url(self, url):
     app_info = conf.get_app_info()
     end_point = app_info['end_point']
     info = urlparse(url)
     end_point_info = urlparse(end_point)
     if (info.hostname == urlparse(conf.API_IMAGE_END_POINT).hostname or info.hostname == urlparse(conf.API_VIDEO_END_POINT).hostname) :
         # this isn't download url
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid}
             elif len(parts) == 6:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 fileid = parts[5]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid}
             elif len(parts) == 7:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 fileid = parts[5]
                 oper = parts[6]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid, 'oper':oper}
             else:
                 return {}
         else:
             return {}
     else :
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 appid = parts[1]
                 userid = parts[2]
                 fileid = parts[3]
                 style = parts[4]
                 return {'appid':appid, 'userid':userid, 'fileid':fileid, 'style':style}
             else:
                 return {}
         else:
             return {}
コード例 #16
0
ファイル: auth.py プロジェクト: wmiao1/python-sdk
 def get_info_from_url(self, url):
     app_info = conf.get_app_info()
     end_point = app_info['end_point']
     info = urlparse(url)
     end_point_info = urlparse(end_point)
     if info.hostname == end_point_info.hostname :
         # 非下载url
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid}
             elif len(parts) == 6:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 fileid = parts[5]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid}
             elif len(parts) == 7:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 fileid = parts[5]
                 oper = parts[6]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid, 'oper':oper}
             else:
                 return {}
         else:
             return {}
     else :
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 appid = parts[1]
                 userid = parts[2]
                 fileid = parts[3]
                 style = parts[4]
                 return {'appid':appid, 'userid':userid, 'fileid':fileid, 'style':style}
             else:
                 return {}
         else:
             return {}
コード例 #17
0
ファイル: auth.py プロジェクト: cash2one/koudaizhuanjia.com
 def get_info_from_url(self, url):
     app_info = conf.get_app_info()
     end_point = app_info['end_point']
     info = urlparse(url)
     end_point_info = urlparse(end_point)
     if (info.hostname == urlparse(conf.API_IMAGE_END_POINT).hostname or info.hostname == urlparse(conf.API_VIDEO_END_POINT).hostname) :
         # 非下载url
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid}
             elif len(parts) == 6:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 fileid = parts[5]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid}
             elif len(parts) == 7:
                 cate = parts[1]
                 ver = parts[2]
                 appid = parts[3]
                 userid = parts[4]
                 fileid = parts[5]
                 oper = parts[6]
                 return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid, 'oper':oper}
             else:
                 return {}
         else:
             return {}
     else :
         if info.path :
             parts = info.path.split('/')
             if len(parts) == 5:
                 appid = parts[1]
                 userid = parts[2]
                 fileid = parts[3]
                 style = parts[4]
                 return {'appid':appid, 'userid':userid, 'fileid':fileid, 'style':style}
             else:
                 return {}
         else:
             return {}
コード例 #18
0
ファイル: auth.py プロジェクト: tencentyun/image-python-sdk
    def get_porn_detect_sign(self, url = None):
        app_info = conf.get_app_info()
        appid = app_info['appid']
        bucket = app_info['bucket']
        expired = int(time.time())+1000
        current = int(time.time())

        #url_dic = {'l':url}
        #plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&t=' + str(current) + '&e=' + str(expired) + '&' + urllib.parse.urlencode(url_dic)
        plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&t=' + str(current) + '&e=' + str(expired)
        
        if isinstance(plain_text, str):
            plain_text = plain_text.encode("utf-8")

        bin = hmac.new(self._secret_key.encode('ascii'), plain_text, hashlib.sha1)
        s = bin.hexdigest()
        s = binascii.unhexlify(s)
        s = s + plain_text
        signature = base64.b64encode(s).rstrip()    #生成签名
        return signature.decode('ascii')