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 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_batch_delete_move_copy(self): r = rs.Client() e1 = rs.EntryPath(bucket_name, key) e2 = rs.EntryPath(bucket_name, key2) e3 = rs.EntryPath(bucket_name, key3) e4 = rs.EntryPath(bucket_name, key4) r.batch_delete([e2, e3, e4]) # copy entries = [ rs.EntryPathPair(e1, e2), rs.EntryPathPair(e1, e3), ] ret, err = r.batch_copy(entries) assert err is None self.assertEqual(ret[0]["code"], 200) self.assertEqual(ret[1]["code"], 200) ret, err = r.batch_move([rs.EntryPathPair(e2, e4)]) assert err is None self.assertEqual(ret[0]["code"], 200) ret, err = r.batch_delete([e3, e4]) assert err is None self.assertEqual(ret[0]["code"], 200) r.batch_delete([e2, e3, e4])
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 delete_file_qiniu(file_path): from urlparse import urlsplit res = urlsplit(file_path) hostname, path, query_str = res.hostname, res.path, res.query if query_str.strip(): return # can not delete fop url bucket, host = hostname.split(".", 1) # assume it's qiniu sub-domain if host.lower() != "qiniudn.com": # it's not qiniu domain if hostname.lower() != QINIU_SETTINGS.BUCKET_DOMAIN.lower(): raise Exception("can not delete file not in domain %s" % QINIU_SETTINGS.BUCKET_DOMAIN) # it's same domain, use bucket in settings bucket = QINIU_SETTINGS.BUCKET_NAME _, key = path.split("/", 1) ret, err = rs.Client().delete(bucket, key) if err is not None: raise Exception("Qiniu delete file [%s] error: %s res: %s" % (file_path, err, res))
def test_stat(self): r = rs.Client() ret, err = r.stat(bucket_name, key) assert err is None assert ret is not None # error _, err = r.stat(bucket_name, noexist_key) assert err is not None
def test_batch_stat(self): r = rs.Client() entries = [ rs.EntryPath(bucket_name, key), rs.EntryPath(bucket_name, key2), ] ret, err = r.batch_stat(entries) assert err is None self.assertEqual(ret[0]["code"], 200) self.assertEqual(ret[1]["code"], 612)
def putData(self): import socket socket.setdefaulttimeout(3) try: ret,err=io.put_file(self.token,self.filename,Db) if err: rs.Client().delete(ZONENAME,self.filename) self.putData() else: wx.CallAfter(self.showMsg,"数据库上传成功") except: wx.CallAfter(self.showMsg,"数据库上传失败")
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)
def test_delete_move_copy(self): r = rs.Client() r.delete(bucket_name, key2) r.delete(bucket_name, key3) ret, err = r.copy(bucket_name, key, bucket_name, key2) assert err is None, err ret, err = r.move(bucket_name, key2, bucket_name, key3) assert err is None, err ret, err = r.delete(bucket_name, key3) assert err is None, err # error _, err = r.delete(bucket_name, key2) assert err is not None _, err = r.delete(bucket_name, key3) assert err is not None
def _exists(self, name): bucket = BUCKET_KEY ret, err = rs.Client().stat(bucket, name) return ret is not None
def _delete(self, name): bucket = BUCKET_KEY ret, err = rs.Client().delete(bucket, name) if err: raise IOError('QiniuStorageError %s', err) return ret
def size(self, name): name = self._clean_name(name) rsp, err = rs.Client().stat(self.bucket, name) if rsp: return rsp['fsize'] return 0
def exists(self, name): name = self._clean_name(name) rsp, err = rs.Client().stat(self.bucket, name) return rsp is not None
def delete(self, name): name = self._clean_name(name) rsp, err = rs.Client().delete(self.bucket, name) if err: raise IOError('QiniuStorageError %s', err)