Exemplo n.º 1
0
 def zip_upload(self, zip_file, zip_name=None):
     if not zip_name:
         zip_name = str(uuid.uuid1())
     mime_type = 'application/zip'
     token = q.upload_token(qiniu_bucket_name, zip_name)
     qiniu.put_data(token, zip_name, zip_file, mime_type=mime_type, check_crc=True)
     return '%s/%s' % (qiniu_resource_url, zip_name)
Exemplo n.º 2
0
 def excel_upload(self, excel_file, excel_name=None):
     if not excel_name:
         excel_name = str(uuid.uuid1())
     mime_type = 'application/ms-excel'
     token = q.upload_token(qiniu_bucket_name, excel_name)
     qiniu.put_data(token, excel_name, excel_file, mime_type=mime_type, check_crc=True)
     return '%s/%s' % (qiniu_resource_url, excel_name)
Exemplo n.º 3
0
def get_img_path(url):
    img = requests.get(url)
    md5 = hashlib.md5()
    md5.update(img.content)
    key = md5.hexdigest()
    put_data(token, key, img.content)
    return baseurl + '/' + key
Exemplo n.º 4
0
def get_img_url(img):
    print img
    md5 = hashlib.md5()
    md5.update(img)
    key = md5.hexdigest()
    put_data(token, key,img,mime_type='image/jpeg')
    return baseurl + '/' + key
Exemplo n.º 5
0
 def image_upload(self, img_file, image_name=None):
     if not image_name:
         image_name = str(uuid.uuid1())
     mime_type = 'image/jpg'
     token = q.upload_token(qiniu_bucket_name, image_name)
     qiniu.put_data(token, image_name, img_file, mime_type=mime_type, check_crc=True)
     return '%s/%s' % (qiniu_resource_url, image_name)
Exemplo n.º 6
0
def upload_file(data):
    """
    上传文件
    :param data: data文件数据
    :return:
    """
    key = other_config.prefix + hashlib.md5(data).hexdigest()

    q = Auth(other_config.access_key, other_config.secret_key)
    token = q.upload_token(other_config.bucket_name)
    put_data(token, key, data)

    return other_config.url + key
Exemplo n.º 7
0
    def test_putWithoutKey(self):
        key = None
        data = "hello bubby!"
        token = self.q.upload_token(bucket_name)
        ret, info = put_data(token, key, data)
        print(info)
        assert ret["hash"] == ret["key"]

        data = "hello bubby!"
        token = self.q.upload_token(bucket_name, "nokey2")
        ret, info = put_data(token, None, data)
        print(info)
        assert ret is None
        assert info.status_code == 403  # key not match
Exemplo n.º 8
0
    def test_put(self):
        key = 'a\\b\\c"你好'
        data = 'hello bubby!'
        token = self.q.upload_token(bucket_name)
        ret, info = put_data(token, key, data)
        print(info)
        assert ret['key'] == key

        key = ''
        data = 'hello bubby!'
        token = self.q.upload_token(bucket_name, key)
        ret, info = put_data(token, key, data, check_crc=True)
        print(info)
        assert ret['key'] == key
Exemplo n.º 9
0
    def test_putWithoutKey(self):
        key = None
        data = 'hello bubby!'
        token = self.q.upload_token(bucket_name)
        ret, info = put_data(token, key, data)
        print(info)
        assert ret['hash'] == ret['key']

        data = 'hello bubby!'
        token = self.q.upload_token(bucket_name, 'nokey2')
        ret, info = put_data(token, None, data)
        print(info)
        assert ret is None
        assert info.status_code == 403  # key not match
Exemplo n.º 10
0
 def test_put_crc(self):
     key = ""
     data = "hello bubby!"
     token = self.q.upload_token(bucket_name, key)
     ret, info = put_data(token, key, data, check_crc=True)
     print(info)
     assert ret["key"] == key
Exemplo n.º 11
0
    def img_downloaded(self, response):
        from qiniu import put_data

        if response.status not in [400, 403, 404]:
            self.log('DOWNLOADED: %s' % response.url, log.INFO)
            meta = response.meta

            if not self.check_img(data=response.body):
                return
            else:
                image = meta['item']['image']
                key = image['url_hash']
                image['key'] = key
                bucket = 'aizou'
                image['bucket'] = bucket
                sc = False
                self.log('START UPLOADING: %s <= %s' % (key, response.url), log.INFO)

                uptoken = self.get_upload_token(key, bucket)

                for idx in xrange(5):
                    ret, info = put_data(uptoken, key, response.body, check_crc=True)
                    if not ret:
                        self.log('UPLOADING FAILED #%d: %s, reason: %s' % (idx, key, info.error), log.INFO)
                        continue
                    else:
                        sc = True
                        break
                if not sc:
                    raise IOError
                self.log('UPLOADING COMPLETED: %s' % key, log.INFO)

                # 统计信息
                url = 'http://%s.qiniudn.com/%s?stat' % (bucket, key)
                yield Request(url=url, meta={'item': meta['item']}, callback=self.parse_stat)
Exemplo n.º 12
0
    def post(self):
        for i in request.forms.keys():
            print i, request.forms[i], type(request.forms[i])

        for i in request.files.keys():
            print i, request.files[i], type(request.files[i])
            print request.files[i].__dict__

        image = request.files['image']
        name = image.raw_filename
        data = image.file.read()
        key = md5('data').hexdigest() + '.' + name.split('.')[-1]

        auth = Auth(QINIU_ACCESS_KEY, QINIU_SECRET_KEY)
        token = auth.upload_token(
            QINIU_BUCKET_NAME, None, 7200,
            {
                'returnBody': json.dumps({
                    'key': '$(key)',
                    'hash': '$(etag)',
                    'format': '$(imageInfo.format)',
                    'width': '$(imageInfo.width)',
                    'height': '$(imageInfo.height)',
                }),
                'save_key': '$(etag)',
            }
        )
        ret, info = put_data(token, key, data)
Exemplo n.º 13
0
def qiniu_upload_file(source, name):
    token = q.upload_token(bucketname, name)
    ret, info = put_data(token, name, source.stream)
    print type(info.status_code), ret
    if info.status_code == 200:
        return domain + name
    return None
Exemplo n.º 14
0
def tuchuang_index():
    github_user = _get_user()

    if not github_user:
        flash(u'请正确完成牛逼参数设置后上传图片!', category='warning')
        return redirect(url_for('.info'))

    if request.method == 'POST':
        access_key = str(github_user.get('access_key'))
        secret_key = str(github_user.get('secret_key'))
        bucket_name = str(github_user.get('bucket_name'))
        domain_name = str(github_user.get('domain_name'))
        q = Auth(access_key, secret_key)
        token = q.upload_token(bucket_name)

        upload_files = request.files.getlist('file')
        for upload_file in upload_files:
            key = '%s_%s' % (datetime.now().isoformat(), upload_file.filename)
            ret, info = put_data(up_token=token, key=key, data=upload_file)
            url = '%s/%s' % (domain_name, key)
            f = File()
            f.set('url', url)
            f.set('user', github_user)
            f.save()
        flash(u'成功上传%s张照片!' % len(upload_files), category='success')
        return redirect(url_for('.tuchuang_index'))

    image_id = request.args.get('image_id')
    image = Query(File).get(image_id) if image_id else None

    return render_template('tuchuang.html', image=image)
Exemplo n.º 15
0
def upload_file(file_name=None, data=None):
    if not file_name:
        file_name = hashlib.md5(data).hexdigest()
    q = Auth(settings.QINIU_KEY, settings.QINIU_TOKEN)
    token = q.upload_token(settings.QINIU_BUCKET)
    ret, info = put_data(token, file_name, data)
    return ret['key'] == file_name, file_name
Exemplo n.º 16
0
    def create(self):
        # TODO: 表单验证
        image = request.files['image']
        # TODO: 解包检查
        origin_name, suffix = image.raw_filename.split('.')

        data = image.file.read()
        data_hash = md5(data).hexdigest()
        key = data_hash

        model = ImageModel.query.get(data_hash)
        if model:
            return model.as_dict()

        auth = Auth(QINIU_ACCESS_KEY, QINIU_SECRET_KEY)
        token = auth.upload_token(
            QINIU_BUCKET_NAME, None, 7200,
            {
                'returnBody': json.dumps({
                    'key': '$(key)',
                    'hash': '$(etag)',
                    'format': '$(imageInfo.format)',
                    'width': '$(imageInfo.width)',
                    'height': '$(imageInfo.height)',
                }),
                'save_key': '$(etag)',
            }
        )
        ret, info = put_data(token, key, data)
        model = ImageModel(
            hashkey=data_hash, suffix=ret['format'],
            width=ret['width'], height=ret['height'])
        db.session.add(model)
        db.session.commit()
        return model.as_dict()
Exemplo n.º 17
0
    def uploadData(data):
        if type(data) == QByteArray:
            data = data.data()

        from .secfg import qiniu_acckey, qiniu_seckey, qiniu_bucket_name
        access_key = qiniu_acckey
        secret_key = qiniu_seckey
        bucket_name = qiniu_bucket_name

        print(access_key, secret_key, bucket_name)
        q = qiniu.Auth(access_key, secret_key)
        # 由于本机时间错误,导致计算了出的token立即失效:
        # text_body:{"error":"expired token"}
        token = q.upload_token(bucket_name, expires=3600*24)
        key = 'helloqt.png'
        key = FileStore.md5sum(data)
        # data = 'hello qiniu!'
        # data = load_from_file(PATH)
        print('uploading file:', key, token)
        ret, info = qiniu.put_data(token, key, data)
        if ret is not None:
            print('upload file All is OK', ret)
            url = 'http://7xn2rb.com1.z0.glb.clouddn.com/%s' % key
            return url
        else:
            print(ret, '=====', info)  # error message in info
        return str(info)
Exemplo n.º 18
0
def qiniu_upload_fileobj(obj, bucket_name, ext=None):
    '''
        把request.FILES里的文件对象上传到七牛
        obj: 文件对象
        bucket_name: 七牛的bucket
        ext: 为七牛的key追加的扩展名,包含.符号
    '''
    if not ext:
        ext = os.path.splitext(obj.name)[1]

    full_name = '%s/%s%s' % (
        datetime.datetime.now().strftime('%Y%m%d/%H%M%S'),
        _key(10).lower(),
        ext
    )
    q = qiniu.Auth(AK, SK)
    token = q.upload_token(bucket_name, full_name)
    data = ''
    for chunk in obj.chunks():
        data += chunk
    ret, info = qiniu.put_data(token, full_name, data, mime_type=obj.content_type)
    if ret:
        return full_name
    else:
        logger.debug('qiniu upload err: %s', info)
Exemplo n.º 19
0
    def post(self, template_variables = {}):
        template_variables = {}
        # validate the fields
        if("files" in self.request.files):            
            file_name = "%s" % uuid.uuid1()
            file_raw = self.request.files["files"][0]["body"]
            file_buffer = StringIO.StringIO(file_raw)
            file = Image.open(file_buffer)

            usr_home = os.path.expanduser('~')
            file.save(usr_home+"/%s.png" % file_name, "PNG")  

            uptoken = q.upload_token("yx-img", "%s.png" % file_name)
            data=open(usr_home+"/%s.png" % file_name)
            ret, info = put_data(uptoken, "%s.png" % file_name, data)
 
            os.remove(usr_home+"/%s.png" % file_name)

            file_name = "http://objdsnsh2.bkt.clouddn.com/"+file_name+".png"
            print file_name

            self.write(lib.jsonp.print_JSON({
                    "files": [
                        {
                            "name": file_name,
                        }]
            }))
Exemplo n.º 20
0
 def test_put(self):
     key = 'a\\b\\c"hello'
     data = 'hello bubby!'
     token = self.q.upload_token(bucket_name)
     ret, info = put_data(token, key, data)
     print(info)
     assert ret['key'] == key
Exemplo n.º 21
0
    def upload_data(self, filename, data):
        """上传二进制数据"""
        token = self.auth.upload_token(self.bucket, filename)
        ret, info = put_data(token, filename, data)

        if info.exception is not None:
            raise UploadError(info)
Exemplo n.º 22
0
 def upload(self, data, path):
     token = q.upload_token(self.scope)
     data.seek(0)
     ret, _ = _q.put_data(token, path, data)
     if ret:
         return path, ret['hash']
     raise UploadFailedError
Exemplo n.º 23
0
 def save(self, data, filename=None):
     """
     保存
     """
     auth = qiniu.Auth(self._access_key, self._secret_key)
     token = auth.upload_token(self._bucket_name)
     return qiniu.put_data(token, filename, data)
Exemplo n.º 24
0
def storage(file_data):
    try:
        #构建鉴权对象
        q = Auth(access_key, secret_key)

        #要上传的空间
        bucket_name = 'ihome'

        #上传到七牛后保存的文件名
        # key = 'my-python-logo.png';


        #生成上传 Token,可以指定过期时间等

        token = q.upload_token(bucket_name)

        #要上传文件的本地路径
        # localfile = './sync/bbb.jpg'
        # ret, info = put_file(token, key, localfile)
        ret, info = put_data(token, None, file_data)
    except Exception as e:
        logging.error(e)
        raise e
    print(ret)
    print("*"*16)
    print(info)
    # assert ret['key'] == key
    # assert ret['hash'] == etag(localfile)
    print(type(info))
    print(info.status_code)
    if 200 == info.status_code:
        return ret["key"]
    else:
        raise Exception("上传失败")
Exemplo n.º 25
0
    def _save_to_qiniu(self):
        import qiniu
        output = BytesIO()
        self._source.seek(0)
        base64.encode(self._source, output)
        self._source.seek(0)
        output.seek(0)
        hex_octet = lambda: hex(int(0x10000 * (1 + random.random())))[-4:]
        key = ''.join(hex_octet() for _ in range_type(4))
        key = '{0}.{1}'.format(key, self.extension)
        data = {
            'name': self._name,
            'key': key,
            'ACL': self._acl,
            'mime_type': self._type,
            'metaData': self._metadata,
        }
        response = client.post('/qiniu', data)
        content = response.json()
        self.id = content['objectId']
        self._url = content['url']
        uptoken = content['token']
        ret, info = qiniu.put_data(uptoken, key, self._source)

        if info.status_code != 200:
            raise LeanCloudError(1, 'the file is not saved, qiniu status code: {0}'.format(info.status_code))
Exemplo n.º 26
0
Arquivo: utils.py Projeto: xuemy/btbbs
def upload_to_qiniu(AK, SK, BUCKET_NAME,FILE_OBJ,FILE_NAME,):
    '''
    上传文件到七牛云,并返回 文件hash

    BUCKET_NAME 七牛资源空间名
    FILE_OBJ 文件二进制流
    FILE_NAME 文件保存到七牛云上的文件名
    '''
    q = Auth(AK, SK)
    token = q.upload_token(BUCKET_NAME, FILE_NAME, 3600)
    # ret
    # 一个dict变量,类似 {"hash": "<Hash string>", "key": "<Key string>"}
    # info
    """七牛HTTP请求返回信息类

    该类主要是用于获取和解析对七牛发起各种请求后的响应包的header和body。

    Attributes:
        status_code: 整数变量,响应状态码
        text_body:   字符串变量,响应的body
        req_id:      字符串变量,七牛HTTP扩展字段,参考 http://developer.qiniu.com/docs/v6/api/reference/extended-headers.html
        x_log:       字符串变量,七牛HTTP扩展字段,参考 http://developer.qiniu.com/docs/v6/api/reference/extended-headers.html
        error:       字符串变量,响应的错误内容
    """
    ret, info = put_data(token, FILE_NAME, FILE_OBJ)
    if info.status_code:
        if ret['hash'] == etag_stream(FILE_OBJ):
            return ret['hash']
        return None
    return None
Exemplo n.º 27
0
 def upload_binary_stream(self, key, data):
     # key = ''
     # data = 'hello bubby!'
     token = self.q.upload_token(self.bucket_name, key)
     ret, info = put_data(token, key, data, mime_type="application/octet-stream", check_crc=True)
     # print(info)
     assert ret['key'] == key
     return self.get_download_url(key)
Exemplo n.º 28
0
    def _save_to_qiniu(self, uptoken, key):
        import qiniu
        self._source.seek(0)
        ret, info = qiniu.put_data(uptoken, key, self._source)
        self._source.seek(0)

        if info.status_code != 200:
            raise LeanCloudError(1, 'the file is not saved, qiniu status code: {0}'.format(info.status_code))
Exemplo n.º 29
0
 def test_hasRead_withoutSeek_retry(self):
     key = 'withReadAndWithoutSeek_retry'
     data = ReadWithoutSeek('I only have read attribute!')
     set_default(default_zone=Zone('http://a', 'http://upload.qiniu.com'))
     token = self.q.upload_token(bucket_name)
     ret, info = put_data(token, key, data)
     print(info)
     assert ret is None
Exemplo n.º 30
0
 def test_hasRead_WithoutSeek_retry2(self):
     key = 'withReadAndWithoutSeek_retry2'
     data = urlopen("http://www.qiniu.com")
     set_default(default_zone=Zone('http://a', 'http://upload.qiniu.com'))
     token = self.q.upload_token(bucket_name, key)
     ret, info = put_data(token, key, data)
     print(info)
     assert ret is not None
Exemplo n.º 31
0
def upload_image(image_data):

    q = qiniu.Auth(access_key, secret_key)
    token = q.upload_token(bucket_name)
    ret, info = qiniu.put_data(token, None, image_data)

    if info.status_code == 200:
        return ret.get("key")
    else:
        raise Exception('上传图片失败')
Exemplo n.º 32
0
    def qiniu_upload_file(self, access_key, secret_key, bucket_name, domain,
                          source_file, filename):

        # 构建鉴权对象
        q = Auth(access_key, secret_key)
        token = q.upload_token(bucket_name, filename)
        ret, info = put_data(token, filename, source_file)
        if info.status_code == 200:
            return domain + filename
        return None
Exemplo n.º 33
0
    def qiniuSave(self, string, filename):
        access_key = '_4TUdWfMQGZ5f2DFFmXbARs7pQLWmiPK-IFbSsw5'
        secrect_key = '1x0lUvV11qxbWQO1G_XrMm6v-MSsDWJWNCJk2K67'
        bucket_name = 'brpublic'

        q = qiniu.Auth(access_key, secrect_key)
        token = q.upload_token(bucket_name)
        ret, info = qiniu.put_data(token, 'Saron/' + filename, string)

        return ret
Exemplo n.º 34
0
 def upload(self, data, mime_type='application/octet-stream', key=None):
     key = key if key else '{}{}_{}'.format(self.path, int(time.time()),
                                            hashlib.md5(data).hexdigest())
     ret, info = qiniu.put_data(self._token(key),
                                key,
                                data,
                                mime_type=mime_type)
     if not ret:
         return None
     return '{}{}'.format(self.prefix_url, ret['key'])
Exemplo n.º 35
0
def upload_data(data, key):
    auth = qiniu.Auth(ACCESS_KEY, SECRET_KEY)
    upToken = auth.upload_token(BUCKET_NAME, key)
    retData, respInfo = qiniu.put_data(upToken,
                                       key,
                                       data,
                                       mime_type="application/octet-stream",
                                       check_crc=True)
    #解析结果
    return parseRet(retData, respInfo)
Exemplo n.º 36
0
def qiniu_upload_file(source_file, save_file_name):
    # 生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, save_file_name)

    ret, info = put_data(token, save_file_name, source_file.stream)

    print type(info.status_code), info
    if info.status_code == 200:
        return domain_prefix + save_file_name
    return None
Exemplo n.º 37
0
def save_file(url):
    try:
        req = urllib.request.Request(url)
        res = urllib.request.urlopen(req)
        filename = str(uuid.uuid4()).replace('-', '')
        token = get_token(filename)
        ret, _ = put_data(token, filename, data=res.read())
        return ret.get('key')
    except Exception as e:
        return ''
Exemplo n.º 38
0
def upload_by_qiniu(image_data):
    q = Auth(current_app.config["QINIU_AK"], current_app.config["QINIU_SK"])
    bucket_name = current_app.config["QINIU_BUCKETNAME"]
    token = q.upload_token(bucket_name)
    ret, info = put_data(token, None, image_data)
    if info.status_code == 200:
        return ret.get("key")
    else:
        raise Exception("上传七牛失败!")
        return None
Exemplo n.º 39
0
def data_upload(data, name, accesskey, secretkey, bucket):
    auth = Auth(accesskey, secretkey)
    token = auth.upload_token(bucket)
    # 压缩文件
    if 'compress' in params:
        data = zlib.compress(data)
    ret, info = put_data(token, name, data)
    if ret is None:
        return (False, info)
    return (True, "success")
Exemplo n.º 40
0
 def test_withoutRead_withoutSeek_retry(self):
     key = 'retry'
     data = 'hello retry!'
     set_default(default_zone=Zone('a', 'upload.qiniu.com'))
     token = self.q.upload_token(bucket_name)
     ret, info = put_data(token, key, data)
     print(info)
     assert ret['key'] == key
     assert ret['hash'] == 'FlYu0iBR1WpvYi4whKXiBuQpyLLk'
     qiniu.set_default(default_zone=qiniu.config.zone0)
Exemplo n.º 41
0
 def test_hasRead_hasSeek_retry(self):
     key = 'withReadAndSeek_retry'
     data = StringIO('hello retry again!')
     set_default(default_zone=Zone('a', 'upload.qiniu.com'))
     token = self.q.upload_token(bucket_name)
     ret, info = put_data(token, key, data)
     print(info)
     assert ret['key'] == key
     assert ret['hash'] == 'FuEbdt6JP2BqwQJi7PezYhmuVYOo'
     qiniu.set_default(default_zone=qiniu.config.zone0)
Exemplo n.º 42
0
 def test_putData_without_fname(self):
     if is_travis():
         return
     localfile = create_temp_file(30 * 1024 * 1024)
     key = 'test_putData_without_fname'
     with open(localfile, 'rb') as input_stream:
         token = self.q.upload_token(bucket_name)
         ret, info = put_data(token, key, input_stream)
         print(info)
         assert ret is not None
Exemplo n.º 43
0
def upload_file(stream):
    token = generate_upload_token()
    # resp = requests.post('http://up-z2.qiniup.com/', data={
    #     'token': token,
    #     'file': stream
    # })
    # import ipdb
    # ipdb.set_trace()
    ret, info = put_data(token, key=None, data=stream)
    return ret['key']
Exemplo n.º 44
0
 def _put_data(self, name, data):
     """upload data to qiniu cloud"""
     name = self._normalize_name(self._clean_name(name))
     token = self.auth.upload_token(self.bucket_name, name)
     ret, info = put_data(token, name, data)
     if ret is None or ret['key'] != name:
         raise QiNiuError(info)
     print(f'{name} ... ok')
     self._clean_qiniu_cache_file()
     return name
Exemplo n.º 45
0
def storage(data):
    try:
        q = Auth(access_key, secret_key)
        token = q.upload_token(bucket_name)
        ret, info = put_data(token, None, data)
    except Exception as e:
        raise e
    if info and info.status_code != 200:
        raise Exception("上传文件失败")
    return ret["key"]
Exemplo n.º 46
0
 def upload_data(self,
                 data,
                 mime_type='application/octet-stream',
                 ie=True):  #using it to upload a data
     key, token = self.upload_token(ie)
     ret, info = put_data(token, key, data, mime_type=mime_type)
     self.key = key
     if ret['key'] != key:  # key is the key of the updated data
         raise Code.file_update_fail
     return key
Exemplo n.º 47
0
def upload_img(data):
    q = qiniu.Auth(access_key, secret_key)
    key = None  # 上传文件名 不设置会自动生成随机名称

    token = q.upload_token(bucket_name)
    ret, info = qiniu.put_data(token, key, data)
    if ret is not None:
        return ret.get("key")  # 取出上传的文件名
    else:
        raise Exception(info)
Exemplo n.º 48
0
 def test_withoutRead_withoutSeek_retry(self):
     key = 'retry'
     data = 'hello retry!'
     set_default(default_up_host='a')
     token = self.q.upload_token(bucket_name)
     ret, info = put_data(token, key, data)
     print(info)
     assert ret['key'] == key
     assert ret['hash'] == 'FlYu0iBR1WpvYi4whKXiBuQpyLLk'
     qiniu.set_default(default_up_host=qiniu.config.UPAUTO_HOST)
Exemplo n.º 49
0
def generateCard(id):
    try:
        card = Query(Card).get(id)
        tid = card.get('temlate')
        if (card.get('photo') is None):
            msstream = BytesIO()
            if tid == 1:
                template(card, msstream)
            elif tid == 2:
                template2(card, msstream)
            elif tid == 3:
                template3(card, msstream)
            elif tid == 4:
                template4(card, msstream)
            else:
                template(card, msstream)
            url = os.environ["QINIU_ACCESS_URL"]
            access_key = os.environ["QINIU_ACCESS_KEY"]
            secret_key = os.environ["QINIU_SECRET_KEY"]
            #构建鉴权对象
            q = Auth(access_key, secret_key)
            #要上传的空间
            bucket_name = 'card'
            key = card.get('objectId')
            token = q.upload_token(bucket_name)
            ret, info = put_data(token, key, msstream.getvalue())
            if (info.ok()):
                metaData = {'owner': card.get('username')}
                photo = Photo()
                photo.set('mine_type', 'image/jpeg')
                photo.set('key', key)
                photo.set('name', key)
                photo.set('url', url + '/' + key)
                photo.set('provider', 'qiniu')
                photo.set('metaData', metaData)
                photo.set('bucket', bucket_name)
                photo.save()
                update = Card.create_without_data(id)
                user = _User.create_without_data('590be679ac502e006cdc63c0')
                update.set('user', user)
                update.set('username', '569dil3zuypnrpjqwe97l3qkw')
                update.set('photo', photo)
                update.save()
                return 'ok'
            else:
                return 'failed'
        else:
            return 'already'
    except LeanCloudError as e:
        if e.code == 101:  # 服务端对应的 Class 还没创建
            card = ''
            return 'no class'
        else:
            raise e
            return 'error'
Exemplo n.º 50
0
def save_qiniu(data, image_name):
    assess_key = os.environ.get('QINIUAK')
    secret_key = os.environ.get('QINIUSK')

    q = Auth(assess_key, secret_key)

    bucket_name = 'bing-background-picture'
    key = os.path.join(os.sep, date, image_name)
    token = q.upload_token(bucket_name, key, 3600)
    ret, info = put_data(token, key, data)
    print info
Exemplo n.º 51
0
    def qiniu_upload_file(self, source_file, filename):

        # 构建鉴权对象
        q = Auth(self.oss_access_key_all, self.oss_secret_key_all)
        token = q.upload_token(self.oss_bucket_name_all, filename)
        domain_prefix = self.oss_domain_all

        ret, info = put_data(token, filename, source_file)
        if info.status_code == 200:
            return domain_prefix + filename
        return None
Exemplo n.º 52
0
def upload_qiniu(name, data):
    auth = Auth(options["-a"], options["-s"])
    token = auth.upload_token(options["-b"])

    # 压缩文件
    if "-c" in options:
        data = zlib.compress(data)

    ret, info = put_data(token, name, data)
    if ret is None:
        raise Exception(info)
Exemplo n.º 53
0
def upload_data(filestream, bucket_name):
    # 生成上传凭证
    q = Auth(access_key, secret_key)
    suffix = filestream.name.split('.')[-1]  # 后缀(jpg, png, gif)

    filename = uuid.uuid4().hex + '.' + suffix.lower()
    token = q.upload_token(bucket_name, filename)
    # 上传文件
    retData, respInfo = put_data(token, filename, filestream)

    return filename, domain_prefix + filename
Exemplo n.º 54
0
    def put(self, name, data):
        token = self.q.upload_token(self.bucket_name, name)
        ret, info = put_data(token, name, data)

        if 'key' in ret:
            #获得完整的链接
            remote_url = '/'.join([self.base_url, ret['key']])
            #访问的链接
            return remote_url
        else:
            return False
Exemplo n.º 55
0
    def _save(self, name, content):
        try:
            q = Auth(access_key, secret_key)
            token = q.upload_token(bucket_name)
            ret, info = put_data(token, None, content.read())
        except Exception as e:
            raise e

        if info.status_code != 200:
            raise Exception("上传图片失败")
        return ret["key"]
Exemplo n.º 56
0
def storage(data):
    try:
        q = Auth(access_key, secret_key)
        token = q.upload_token(bucket_name)
        ret, info = put_data(token, None, data)
        print(ret, info)
    except Exception as e:
        raise e
    if info.status_code != 200:
        raise Exception('上传图片失败')
    return ret['key']
Exemplo n.º 57
0
def upload_file(data):
    q = qiniu.Auth(access_key, secret_key)
    token = q.upload_token(bucket_name)
    ret, info = qiniu.put_data(token, None, data)

    print(ret['key'])

    if info.status_code != 200:
        raise Exception('七牛上传失败')

    return ret['key']
Exemplo n.º 58
0
def qiniu_upload_file(source_file, save_file_name):
    # 上传到七牛后保存的文件名
    # key = 'my-python-logo.png';
    # 生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, save_file_name)
    ret, info = put_data(token, save_file_name, source_file.stream)

    print(info)
    if info.status_code == 200:
        return domain_prefix + save_file_name
    return None
Exemplo n.º 59
0
def upload():
    action = request.args.get('action')
    result = {}
    if action == 'config':
        config_path = os.path.join(bp.static_folder or app.static_folder,
                                   'ueditor', 'config.json')
        with open(config_path, 'r', encoding='utf-8') as fp:
            result = json.loads(re.sub(r'\/\*.*\*\/', '', fp.read()))

    elif action in ['uploadimage', 'uploadvideo', 'uploadfile']:
        image = request.files.get("upfile")
        filename = image.filename
        save_filename = _random_filename(filename)
        result = {'state': '', 'url': '', 'title': '', 'original': ''}
        if UEDITOR_UPLOAD_TO_QINIU:
            if not sys.modules.get('qiniu'):
                raise RuntimeError('没有导入qiniu模块!')
            q = qiniu.Auth(UEDITOR_QINIU_ACCESS_KEY, UEDITOR_QINIU_SECRET_KEY)
            token = q.upload_token(UEDITOR_QINIU_BUCKET_NAME)
            '''
            ====================================================================
            转化为二进制文件
            ====================================================================
            '''
            buffer = BytesIO()
            image.save(buffer)
            buffer.seek(0)
            ret, info = qiniu.put_data(token, save_filename, buffer.read())
            if info.ok:
                result['state'] = "SUCCESS"
                result['url'] = parse.urljoin(UEDITOR_QINIU_DOMAIN, ret['key'])
                result['title'] = ret['key']
                result['original'] = ret['key']
        else:
            image.save(os.path.join(UEDITOR_UPLOAD_PATH, save_filename))
            result['state'] = "SUCCESS"
            result['url'] = url_for('ueditor.files', filename=save_filename)
            result['title'] = save_filename,
            result['original'] = image.filename

    elif action == 'uploadscrawl':
        base64data = request.form.get("upfile")
        img = base64.b64decode(base64data)
        filename = _random_filename('xx.png')
        filepath = os.path.join(UEDITOR_UPLOAD_PATH, filename)
        with open(filepath, 'wb') as fp:
            fp.write(img)
        result = {
            "state": "SUCCESS",
            "url": url_for('files', filename=filename),
            "title": filename,
            "original": filename
        }
    return jsonify(result)
Exemplo n.º 60
0
def image_storage(image_data):
    #要上传文件的本地路径
    # localfile = './11.jpg'
    # ret, info = put_file(token, None, localfile)
    ret, info = put_data(token, None, image_data)

    #上传成功,返回图片名称,失败返回空
    if info.status_code == 200:
        return ret.get("key")
    else:
        return ""