Skip to content

Commit 61ffde0

Browse files
committed
Merge pull request #76 from chzyer/develop
resumableio: use mkfile
2 parents 7fbab65 + 1cf7e3a commit 61ffde0

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

qiniu/resumable_io.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ def gen_crc32(data):
4646
return binascii.crc32(data) & 0xffffffff
4747

4848
class PutExtra(object):
49-
callback_params = None # 当 uptoken 指定了 CallbackUrl,则 CallbackParams 必须非空
50-
bucket = None # 当前是必选项,但未来会去掉
51-
custom_meta = None # 可选。用户自定义 Meta,不能超过 256 字节
49+
params = None # 自定义用户变量, key需要x: 开头
5250
mimetype = None # 可选。在 uptoken 没有指定 DetectMime 时,用户客户端可自己指定 MimeType
5351
chunk_size = None # 可选。每次上传的Chunk大小
5452
try_times = None # 可选。尝试次数
@@ -153,17 +151,17 @@ def putblock(client, block_ret, chunk):
153151
return client.call_with(url, chunk, content_type, len(chunk))
154152

155153
def mkfile(client, key, fsize, extra):
156-
encoded_entry = urlsafe_b64encode("%s:%s" % (extra.bucket, key))
157-
url = ["http://%s/rs-mkfile/%s/fsize/%s" % (conf.UP_HOST, encoded_entry, fsize)]
154+
url = ["http://%s/mkfile/%s" % (conf.UP_HOST, fsize)]
158155

159156
if extra.mimetype:
160157
url.append("mimeType/%s" % urlsafe_b64encode(extra.mimetype))
161158

162-
if extra.custom_meta:
163-
url.append("meta/%s" % urlsafe_b64encode(extra.custom_meta))
159+
if key is not None:
160+
url.append("key/%s" % urlsafe_b64encode(key))
164161

165-
if extra.callback_params:
166-
url.append("params/%s" % urlsafe_b64encode(extra.callback_params))
162+
if extra.params:
163+
for k, v in extra.params.iteritems():
164+
url.append("%s/%s" % (k, urlsafe_b64encode(v)))
167165

168166
url = "/".join(url)
169167
body = ",".join([i["ctx"] for i in extra.progresses])

qiniu/test/resumable_io_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,11 @@ def test_put(self):
6565
policy = rs.PutPolicy(bucket)
6666
extra = resumable_io.PutExtra(bucket)
6767
extra.bucket = bucket
68+
extra.params = {"x:foo": "test"}
6869
key = "sdk_py_resumable_block_5_%s" % r(9)
6970
localfile = dst.name
7071
ret, err = resumable_io.put_file(policy.token(), key, localfile, extra)
72+
assert ret.get("x:foo") == "test", "return data not contains 'x:foo'"
7173
dst.close()
7274
os.remove(tmpf)
7375

0 commit comments

Comments
 (0)