Exemplo n.º 1
0
    def test_put_4m(self):
        if is_travis:
            return
        ostype = platform.system()
        if ostype.lower().find("windows") != -1:
            tmpf = "".join([os.getcwd(), os.tmpnam()])
        else:
            tmpf = os.tmpnam()
        dst = open(tmpf, 'wb')
        dst.write("abcd" * 1024 * 1024)
        dst.flush()

        policy = rs.PutPolicy(bucket)
        extra = resumable_io.PutExtra(bucket)
        extra.bucket = bucket
        extra.params = {"x:foo": "test"}
        key = "sdk_py_resumable_block_6_%s" % r(9)
        localfile = dst.name
        ret, err = resumable_io.put_file(policy.token(), key, localfile, extra)
        assert ret.get("x:foo") == "test", "return data not contains 'x:foo'"
        dst.close()
        os.remove(tmpf)

        assert err is None, err
        self.assertEqual(ret["hash"], "FnIVmMd_oaUV3MLDM6F9in4RMz2U",
                         "hash not match")
        rs.Client().delete(bucket, key)
Exemplo n.º 2
0
    def test_block(self):
        if is_travis:
            return
        policy = rs.PutPolicy(bucket)
        uptoken = policy.token()
        client = up.Client(uptoken)

        # rets = [0, 0]
        data_slice_2 = "\nbye!"
        ret, err = resumable_io.mkblock(client, len(data_slice_2),
                                        data_slice_2)
        assert err is None, err
        self.assertEqual(ret["crc32"], binascii.crc32(data_slice_2))

        extra = resumable_io.PutExtra(bucket)
        extra.mimetype = "text/plain"
        extra.progresses = [ret]
        lens = 0
        for i in xrange(0, len(extra.progresses)):
            lens += extra.progresses[i]["offset"]

        key = u"sdk_py_resumable_block_4_%s" % r(9)
        ret, err = resumable_io.mkfile(client, key, lens, extra)
        assert err is None, err
        self.assertEqual(ret["hash"], "FtCFo0mQugW98uaPYgr54Vb1QsO0",
                         "hash not match")
        rs.Client().delete(bucket, key)
Exemplo n.º 3
0
    def test_put(self):
        if is_travis:
            return
        src = urllib.urlopen("http://cheneya.qiniudn.com/hello_jpg")
        ostype = platform.system()
        if ostype.lower().find("windows") != -1:
            tmpf = "".join([os.getcwd(), os.tmpnam()])
        else:
            tmpf = os.tmpnam()
        dst = open(tmpf, 'wb')
        shutil.copyfileobj(src, dst)
        src.close()

        policy = rs.PutPolicy(bucket)
        extra = resumable_io.PutExtra(bucket)
        extra.bucket = bucket
        extra.params = {"x:foo": "test"}
        key = "sdk_py_resumable_block_5_%s" % r(9)
        localfile = dst.name
        ret, err = resumable_io.put_file(policy.token(), key, localfile, extra)
        assert ret.get("x:foo") == "test", "return data not contains 'x:foo'"
        dst.close()
        os.remove(tmpf)

        assert err is None, err
        self.assertEqual(ret["hash"], "FnyTMUqPNRTdk1Wou7oLqDHkBm_p",
                         "hash not match")
        rs.Client().delete(bucket, key)
Exemplo n.º 4
0
def resumable_put():
    ''' 断点续上传 '''
    # 尝试删除
    rs_client = qiniu.rs.Rs()
    rs_client.delete(bucket_name, key)

    # @gist resumable_put
    class ResumableUpload(object):
        position = 0

        def __init__(self, string_data):
            self.data = string_data

        def read(self, length):
            data = self.data[self.position:self.position + length]
            self.position += length
            return data

    a = "resumable upload string"
    extra = rio.PutExtra(bucket_name)
    extra.mime_type = "text/plain"
    ret, err = rio.put(uptoken, key, ResumableUpload(a), len(a), extra)
    if err is not None:
        error(err)
        return
    print ret,
Exemplo n.º 5
0
def upload(key, data):
    uptoken = policy.token()
    extra = rio.PutExtra('cntrains')
    try:
        ret, err = rio.put(uptoken, key, StringIO.StringIO(data), len(data),
                           extra)
        if err is not None:
            logger.warn('upload error: %s ' % err)
    except:
        logger.exception('')
Exemplo n.º 6
0
def upload_by_rawdata(rawdata, length):
    policy = qiniu_rs.PutPolicy(qiniu_bucket)
    uptoken = policy.token()
    extra = rio.PutExtra(qiniu_bucket)
    ret, err = rio.put(uptoken, None, rawdata, length, extra)
    if err is not None:
        log.error('rio put raw file return ret:%s, err:%s' % (str(ret), err))
        return None
    else:
        log.info('rio put raw file return ret:%s, err:%s' % (str(ret), err))

    return ret['key']
Exemplo n.º 7
0
def resumable_put_file():
	''' 断点续上传文件 '''
	# 尝试删除
	qiniu.rs.Client().delete(bucket_name, key)
	
	# @gist resumable_put_file
	localfile = "%s" % __file__
	extra = rio.PutExtra(bucket_name)
	
	ret, err = rio.put_file(uptoken, key, localfile, extra)
	if err is not None:
		sys.stderr.write('error: %s ' % err)
		return
	print ret,
Exemplo n.º 8
0
def resumable_put():
	''' 断点续上传 '''
	# 尝试删除
	qiniu.rs.Client().delete(bucket_name, key)
	
	# @gist resumable_put
	a = "resumable upload string"
	extra = rio.PutExtra(bucket_name)
	extra.mime_type = "text/plain"
	ret, err = rio.put(uptoken, key, StringIO.StringIO(a), len(a), extra)
	if err is not None:
		sys.stderr.write('error: %s ' % err)
		return
	print ret,
Exemplo n.º 9
0
def resumable_put_file():
    ''' 断点续上传文件 '''
    # 尝试删除
    rs_client.delete(bucket_name, key)

    # @gist resumable_put_file
    localfile = "./%s" % __file__
    extra = rio.PutExtra(bucket_name)

    ret, err = rio.put_file(uptoken, key, localfile, extra)
    if err is not None:
        error(err)
        return
    print ret,
Exemplo n.º 10
0
    def test_put_0(self):
        if is_travis:
            return

        f = StringIO.StringIO('')

        policy = rs.PutPolicy(bucket)
        extra = resumable_io.PutExtra(bucket)
        extra.bucket = bucket
        extra.params = {"x:foo": "test"}
        key = "sdk_py_resumable_block_7_%s" % r(9)
        ret, err = resumable_io.put(policy.token(), key, f, 0, extra)

        assert err is None, err
        assert ret.get("x:foo") == "test", "return data not contains 'x:foo'"
        self.assertEqual(ret["hash"], "Fg==", "hash not match")
        rs.Client().delete(bucket, key)