示例#1
0
        def test_put_quote_key():
            data = r(100)
            key = 'a\\b\\c"你好' + r(9)
            ret, err = io.put(policy.token(), key, data)
            assert err is None
            assert ret['key'].encode('utf8') == key

            data = r(100)
            key = u'a\\b\\c"你好' + r(9)
            ret, err = io.put(policy.token(), key, data)
            assert err is None
            assert ret['key'] == key
示例#2
0
        def test_put_quote_key():
            data = r(100)
            key = 'a\\b\\c"你好' + r(9)
            ret, err = io.put(policy.token(), key, data)
            assert err is None
            assert ret['key'].encode('utf8') == key

            data = r(100)
            key = u'a\\b\\c"你好' + r(9)
            ret, err = io.put(policy.token(), key, data)
            assert err is None
            assert ret['key'] == key
示例#3
0
    def post(self):
        mimeType = 'application/json'
        if self.request.headers.get('Content-Type', '') == mimeType:
            data = self.request.body
            dataObj = json.loads(data)
            pid = dataObj.get('id', 'default')
            conf.ACCESS_KEY = STORAGE_ACCESS_KEY
            conf.SECRET_KEY = STORAGE_SECRET_KEY
            storagePolicy = rs.PutPolicy(STORAGE_BUCKET)
            storageToken = storagePolicy.token()

            extra = io.PutExtra()
            extra.mime_type = mimeType

            io.put(storageToken, str(pid), data, extra)
        return
示例#4
0
文件: io_test.py 项目: 13917547121/me
 def test_put_same_crc():
     key = "test_%s" % r(9)
     data = "hello bubby!"
     extra.check_crc = 2
     ret, err = io.put(policy.token(), key, data, extra)
     assert err is None
     assert ret['key'] == key
示例#5
0
		def test_put_same_crc():
			key = "test_%s" % r(9)
			params = "op=3"
			data = "hello bubby!"
			extra.check_crc = 2
			ret, err = io.put(policy.token(), key, data, extra)
			assert err is None
示例#6
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_crc_fail(self):
     key = "test_%s" % r(9)
     data = "hello bubby!"
     extra.check_crc = 2
     extra.crc32 = "wrong crc32"
     ret, err = io.put(policy.token(), key, data, extra)
     assert err is not None
示例#7
0
文件: io_test.py 项目: 13917547121/me
 def test_put_unicode3():
     key = "test_%s" % r(9) + '你好'
     data = key
     key = key.decode('utf8')
     ret, err = io.put(policy.token(), key, data)
     assert err is None
     assert ret[u'key'].endswith(u'你好')
示例#8
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_unicode3():
     key = "test_%s" % r(9) + '你好'
     data = key
     key = key.decode('utf8')
     ret, err = io.put(policy.token(), key, data)
     assert err is None
     assert ret[u'key'].endswith(u'你好')
示例#9
0
文件: app2.py 项目: dtynn/qiniu_demos
    def post(self):
        mimeType = 'application/json'
        if self.request.headers.get('Content-Type', '') == mimeType:
            data = self.request.body
            dataObj = json.loads(data)
            pid = dataObj.get('id', 'default')
            conf.ACCESS_KEY = STORAGE_ACCESS_KEY
            conf.SECRET_KEY = STORAGE_SECRET_KEY
            storagePolicy = rs.PutPolicy(STORAGE_BUCKET)
            storageToken = storagePolicy.token()

            extra = io.PutExtra()
            extra.mime_type = mimeType

            io.put(storageToken, str(pid), data, extra)
        return
示例#10
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_same_crc():
     key = "test_%s" % r(9)
     data = "hello bubby!"
     extra.check_crc = 2
     ret, err = io.put(policy.token(), key, data, extra)
     assert err is None
     assert ret['key'] == key
示例#11
0
    def put(self, img_url, key=None, rename=None):
        """
            put your data to qiniu. If key is None, the server will generate one.
            Note: img_url is web url.
        """
        r = None
        if img_url is None:
            raise ValueError('upload img path to qiniu error!')

        for i in range(5):
            r = requests.get(img_url, timeout=10.0)
            if r is not None:
                break
        policy = rs.PutPolicy(bucket_name)
        policy.saveKey = rename
        up_token = policy.token()

        ret, err = io.put(up_token, key, StringIO(r.content))
        if err is not None:
            sys.stderr.write('error: %s ' % err)
            return ret['key']
        else:
            # print 'upload img ok.'
            pass
        return ret
示例#12
0
文件: io_test.py 项目: 13917547121/me
 def test_put_crc_fail(self):
     key = "test_%s" % r(9)
     data = "hello bubby!"
     extra.check_crc = 2
     extra.crc32 = "wrong crc32"
     ret, err = io.put(policy.token(), key, data, extra)
     assert err is not None
示例#13
0
    def process_item(self, item, spider):
        # 获得上传权限
        qiniu.conf.ACCESS_KEY = "QBsaz_MsErywKS2kkQpwJlIIvBYmryNuPzoGvHJF"
        qiniu.conf.SECRET_KEY = "OTi4GrXf8CQQ0ZLit6Wgy3P8MxFIueqMOwBJhBti"

        # 配置上传策略。
        # 其中lvxingpai是上传空间的名称(或者成为bucket名称)
        policy = qiniu.rs.PutPolicy('lvxingpai-img-store')
        # 取得上传token
        uptoken = policy.token()

        # 上传的额外选项
        extra = io.PutExtra()
        # 文件自动校验crc
        extra.check_crc = 1

        upload_stream = False

        # 将相应的数据存入mongo中
        client = pymongo.MongoClient('zephyre.me', 27017)
        db = client.imagestore

        # 检查是否已经入mongo库
        if db.Hotel.find_one({'url_hash': str(item['hash_value'])}) is None:
            # 先生成本地文件
            localfile = str(time.time()) + str(random.random())

            with open(localfile, 'wb') as f:
                f.write(item['pic'])
            # 上传
            if upload_stream:
                # 上传流
                with open(localfile, 'rb') as f:
                    body = f.read()
                ret, err = io.put(uptoken, str(item['key']), body, extra)
            else:
                # 上传本地文件
                ret, err = io.put_file(uptoken, str(item['key']), localfile,
                                       extra)

            if err is not None:
                sys.stderr.write('error: %s ' % err)
                return

            # 计算文件大小,进入mongo
            file_size = int(getsize(localfile))
            db.Hotel.save({
                'url': item['url'],
                'key': item['key'],
                'url_hash': item['hash_value'],
                'ret_hash': ret['hash'],
                'size': file_size
            })
            # 增加索引
            db.Hotel.create_index('url_hash')

            # 删除上传成功的文件
            os.remove(localfile)
        return item
示例#14
0
	def writeQnData(self, key, mf):
		while True:
			ret, err = io.put(uptoken, key, mf, extra)
			if err is not None:
				logger.error(err)
			else:
				logger.info(ret)
				break
示例#15
0
		def test_put():
			key = "test_%s" % r(9)
			params = "op=3"
			data = "hello bubby!"
			extra.check_crc = 2
			extra.crc32 = zlib.crc32(data) & 0xFFFFFFFF
			ret, err = io.put(policy.token(), key, data, extra)
			assert err is None
示例#16
0
 def put_file(self, name, content):
     bucket = BUCKET_KEY
     policy = rs.PutPolicy(bucket)
     token = policy.token()
     ret, err = io.put(token, name, content)
     if err is not None:
         raise IOError("QiniuStorageError: %s", err)
     return self.img_url(name)
示例#17
0
文件: io_test.py 项目: wbbim/getlink
 def test_put():
     key = "test_%s" % r(9)
     # params = "op=3"
     data = "hello bubby!"
     extra.check_crc = 2
     extra.crc32 = binascii.crc32(data) & 0xFFFFFFFF
     ret, err = io.put(policy.token(), key, data, extra)
     assert err is None
     assert ret['key'] == key
示例#18
0
    def qvttUpload(self, key):
        domain = self.conf.get('qiniu', 'domain')
        accessKey = self.conf.get('qiniu', 'accesskey')
        secretKey = self.conf.get('qiniu', 'secretkey')
        bucket = self.conf.get('qiniu', 'bucket')

        qConf.ACCESS_KEY = accessKey
        qConf.SECRET_KEY = secretKey
        policy = qRs.PutPolicy(bucket)
        uploadToken = policy.token()

        url = '%s/%s' % (domain, key)
        key = '%s.vtt' % (key, )

        data = makeContent(url)

        qIo.put(uploadToken, key, data)
        return
示例#19
0
    def _put_file(self, name, content):

        if self.encrypt_func:
            content = self.encrypt_func(content)

        policy = rs.PutPolicy(self.bucket)
        uptoken = policy.token()
        ret, err = io.put(uptoken, name, content)
        if err is not None:
            raise IOError("QiniuStorageError: %s", err)
示例#20
0
def save_file_qiniu(binary, filename, mime="application/octet-stream"):
    policy = rs.PutPolicy(QiniuConf.BUCKET_NAME)
    uptoken = policy.token()
    extra = io.PutExtra()
    extra.mime_type = mime
    res, err = io.put(uptoken, filename, binary, extra)
    if err is not None:
        return 'none'
    url = rs.make_base_url(QiniuConf.BUCKET_DOMAIN, filename)
    return url
示例#21
0
    def _put_file(self, name, content):

        if self.encrypt_func:
            content = self.encrypt_func(content)

        policy = rs.PutPolicy(self.bucket)
        uptoken = policy.token()
        ret, err = io.put(uptoken, name, content)
        if err is not None:
            raise IOError("QiniuStorageError: %s", err)
示例#22
0
    def process_item(self, item, spider):
        # 获得上传权限
        qiniu.conf.ACCESS_KEY = "QBsaz_MsErywKS2kkQpwJlIIvBYmryNuPzoGvHJF"
        qiniu.conf.SECRET_KEY = "OTi4GrXf8CQQ0ZLit6Wgy3P8MxFIueqMOwBJhBti"

        # 配置上传策略。
        # 其中lvxingpai是上传空间的名称(或者成为bucket名称)
        policy = qiniu.rs.PutPolicy('lvxingpai-img-store')
        # 取得上传token
        uptoken = policy.token()

        # 上传的额外选项
        extra = io.PutExtra()
        # 文件自动校验crc
        extra.check_crc = 1

        upload_stream = False

        # 将相应的数据存入mongo中
        client = pymongo.MongoClient('zephyre.me', 27017)
        db = client.imagestore

        # 检查是否已经入mongo库
        if db.Hotel.find_one({'url_hash': str(item['hash_value'])}) is None:
            # 先生成本地文件
            localfile = str(time.time()) + str(random.random())

            with open(localfile, 'wb') as f:
                f.write(item['pic'])
            # 上传
            if upload_stream:
                # 上传流
                with open(localfile, 'rb') as f:
                    body = f.read()
                ret, err = io.put(uptoken, str(item['key']), body, extra)
            else:
                # 上传本地文件
                ret, err = io.put_file(uptoken, str(item['key']), localfile, extra)

            if err is not None:
                sys.stderr.write('error: %s ' % err)
                return

            # 计算文件大小,进入mongo
            file_size = int(getsize(localfile))
            db.Hotel.save({'url': item['url'], 'key': item['key'],
                           'url_hash': item['hash_value'], 'ret_hash': ret['hash'], 'size': file_size})
            # 增加索引
            db.Hotel.create_index('url_hash')


            # 删除上传成功的文件
            os.remove(localfile)
        return item
示例#23
0
 def post(self):
     files = self.request.files.get('upload_file')
     if not files:
         self.write('no file')
         return
     data = files[0].get('body')
     key = 'upload_app'
     putPolicy = qRs.PutPolicy(scope='%s:%s' % (BUCKET, key))
     uptoken = putPolicy.token()
     print 'up up uploading'
     ret, err = qIo.put(uptoken, key, data)
     if err:
         self.write(err)
     else:
         self.write('http://%s/%s' % (QINIU_DOMAIN, key))
     return
示例#24
0
		def test_put_no_length():
			class test_reader(object):
				def __init__(self):
					self.data = 'abc'
					self.pos = 0
				def read(self, n=None):
					if n is None or n < 0:
						newpos = len(self.data)
					else:
						newpos = min(self.pos+n, len(self.data))
					r = self.data[self.pos: newpos]
					self.pos = newpos
					return r
			key = "test_%s" % r(9)
			data = test_reader()

			extra.check_crc = 2
			extra.crc32 = binascii.crc32('abc') & 0xFFFFFFFF
			ret, err = io.put(policy.token(), key, data, extra)
			assert err is None
			assert ret['key'] == key
示例#25
0
文件: common.py 项目: 13917547121/me
    def save_file_qiniu(binary, filename, mime="application/octet-stream"):

        today = datetime.now().strftime("%Y/%m/%d/")
        filename = today + filename

        policy = rs.PutPolicy(QINIU_SETTINGS.BUCKET_NAME)
        uptoken = policy.token()

        extra = io.PutExtra()
        extra.mime_type = mime

        res, err = io.put(uptoken, filename, binary, extra)
        if err is not None:
            raise Exception("Qiniu save file [%s] error: %s res: %s" % (filename, err, res))

        url = rs.make_base_url(QINIU_SETTINGS.BUCKET_DOMAIN, filename)

        iv = fop.ImageView()
        iv.mode = 2
        iv.width = THUMB_SIZE[0]
        url_thumb = iv.make_request(url)

        return url, url_thumb
示例#26
0
    def save_file_qiniu(binary, filename, mime="application/octet-stream"):

        today = datetime.now().strftime("%Y/%m/%d/")
        filename = today + filename

        policy = rs.PutPolicy(QINIU_SETTINGS.BUCKET_NAME)
        uptoken = policy.token()

        extra = io.PutExtra()
        extra.mime_type = mime

        res, err = io.put(uptoken, filename, binary, extra)
        if err is not None:
            raise Exception("Qiniu save file [%s] error: %s res: %s" % (filename, err, res))

        url = rs.make_base_url(QINIU_SETTINGS.BUCKET_DOMAIN, filename)

        iv = fop.ImageView()
        iv.mode = 2
        iv.width = THUMB_SIZE[0]
        url_thumb = iv.make_request(url)

        return url, url_thumb
示例#27
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_no_key():
     data = r(100)
     extra.check_crc = 0
     ret, err = io.put(policy.token(), key=None, data=data, extra=extra)
     assert err is None
     assert ret['hash'] == ret['key']
示例#28
0
文件: io_test.py 项目: 13917547121/me
 def test_put_unicode1():
     key = "test_%s" % r(9) + '你好'
     data = key
     ret, err = io.put(policy.token(), key, data, extra)
     assert err is None
     assert ret[u'key'].endswith(u'你好')
示例#29
0
文件: io_test.py 项目: 13917547121/me
 def test_put_no_key():
     data = r(100)
     extra.check_crc = 0
     ret, err = io.put(policy.token(), key=None, data=data, extra=extra)
     assert err is None
     assert ret['hash'] == ret['key']
示例#30
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_StringIO():
     key = "test_%s" % r(9)
     data = cStringIO.StringIO('hello buddy!')
     ret, err = io.put(policy.token(), key, data)
     assert err is None
     assert ret['key'] == key
示例#31
0
文件: io_test.py 项目: 13917547121/me
 def test_put_fail_reqid(self):
     key = "test_%s" % r(9)
     data = "hello bubby!"
     ret, err = io.put("", key, data, extra)
     assert "reqid" in err
示例#32
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_urlopen():
     key = "test_%s" % r(9)
     data = urllib.urlopen('http://cheneya.qiniudn.com/hello_jpg')
     ret, err = io.put(policy.token(), key, data)
     assert err is None
     assert ret['key'] == key
示例#33
0
文件: io_test.py 项目: 13917547121/me
 def test_put_urlopen():
     key = "test_%s" % r(9)
     data = urllib.urlopen('http://cheneya.qiniudn.com/hello_jpg')
     ret, err = io.put(policy.token(), key, data)
     assert err is None
     assert ret['key'] == key
示例#34
0
文件: io_test.py 项目: 13917547121/me
 def test_put_StringIO():
     key = "test_%s" % r(9)
     data = cStringIO.StringIO('hello buddy!')
     ret, err = io.put(policy.token(), key, data)
     assert err is None
     assert ret['key'] == key
示例#35
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_fail_reqid(self):
     key = "test_%s" % r(9)
     data = "hello bubby!"
     ret, err = io.put("", key, data, extra)
     assert "reqid" in err
示例#36
0
reload(sys)
sys.setdefaultencoding('utf-8')
sys.path.insert(0, '../')

from qiniu import conf as qConf, rs as qRs, io as qIo

ACCESS_KEY = ''
SECRET_KEY = ''
BUCKET = ''
QINIU_DOMAIN = ''

qConf.ACCESS_KEY = ACCESS_KEY
qConf.SECRET_KEY = SECRET_KEY

if __name__ == '__main__':
    putPolicy = qRs.PutPolicy(scope=BUCKET)
    uptoken = putPolicy.token()

    filePath = '../files/test.jpg'

    key = 'upload_put.jpg'

    f = open(filePath, 'rb')
    data = f.read()

    #上传结果
    ret, err = qIo.put(uptoken, key, data)
    print ret
    print err
    if err is None:
        print 'http://%s/%s' % (QINIU_DOMAIN, key)
示例#37
0
文件: io_test.py 项目: wbbim/getlink
 def test_put_unicode1():
     key = "test_%s" % r(9) + '你好'
     data = key
     ret, err = io.put(policy.token(), key, data, extra)
     assert err is None
     assert ret[u'key'].endswith(u'你好')