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)
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)
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)
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,
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('')
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']
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,
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,
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,
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)