Ejemplo n.º 1
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)
Ejemplo n.º 2
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)
Ejemplo n.º 3
0
    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])
Ejemplo n.º 4
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)
Ejemplo n.º 5
0
Archivo: common.py Proyecto: zky001/me
    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))
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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,"数据库上传失败")
Ejemplo n.º 9
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)
Ejemplo n.º 10
0
    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
Ejemplo n.º 11
0
 def _exists(self, name):
     bucket = BUCKET_KEY
     ret, err = rs.Client().stat(bucket, name)
     return ret is not None
Ejemplo n.º 12
0
 def _delete(self, name):
     bucket = BUCKET_KEY
     ret, err = rs.Client().delete(bucket, name)
     if err:
         raise IOError('QiniuStorageError %s', err)
     return ret
Ejemplo n.º 13
0
 def size(self, name):
     name = self._clean_name(name)
     rsp, err = rs.Client().stat(self.bucket, name)
     if rsp:
         return rsp['fsize']
     return 0
Ejemplo n.º 14
0
 def exists(self, name):
     name = self._clean_name(name)
     rsp, err = rs.Client().stat(self.bucket, name)
     return rsp is not None
Ejemplo n.º 15
0
 def delete(self, name):
     name = self._clean_name(name)
     rsp, err = rs.Client().delete(self.bucket, name)
     if err:
         raise IOError('QiniuStorageError %s', err)