Skip to content

Commit e9cd3a7

Browse files
committed
fix: hide url attribute when file upload failed
see also leancloud/javascript-sdk#640
1 parent 9b46377 commit e9cd3a7

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

leancloud/file_.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def __init__(self, name="", data=None, mime_type=None):
3636
self.key = None
3737
self.id = None
3838
self._url = None
39+
self._successful_url = None
3940
self._acl = None
4041
self.current_user = leancloud.User.get_current()
4142
self.timeout = 30
@@ -137,7 +138,7 @@ def name(self):
137138

138139
@property
139140
def url(self):
140-
return self._url
141+
return self._successful_url
141142

142143
@property
143144
def mime_type(self):
@@ -226,6 +227,7 @@ def _save_external(self):
226227
response = client.post("/files".format(self._name), data)
227228
content = response.json()
228229
self.id = content["objectId"]
230+
self._successful_url = self._url
229231

230232
def _save_to_qcloud(self, token, upload_url):
231233
headers = {
@@ -286,6 +288,7 @@ def _update_data(self, server_data):
286288
self._name = server_data.get("name")
287289
if "url" in server_data:
288290
self._url = server_data.get("url")
291+
self._successful_url = self._url
289292
if "mime_type" in server_data:
290293
self._mime_type = server_data["mime_type"]
291294
if "metaData" in server_data:

tests/test_file.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ def test_create_with_url(): # type: () -> None
6767
u"http://i1.wp.com/leancloud.cn/images/static/default-avatar.png",
6868
meta_data={},
6969
)
70-
assert f.url == "http://i1.wp.com/leancloud.cn/images/static/default-avatar.png"
70+
assert f._url == "http://i1.wp.com/leancloud.cn/images/static/default-avatar.png"
71+
assert f.url is None
7172

7273

7374
def test_create_without_data(): # type: () -> None

0 commit comments

Comments
 (0)