Skip to content

Commit bbea2db

Browse files
authored
Merge pull request #530 from leancloud/set-url-after-upload-succeed
fix: hide url attribute when file upload failed
2 parents a7817a5 + 335e3dc commit bbea2db

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

leancloud/file_.py

Lines changed: 5 additions & 2 deletions
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):
@@ -162,7 +163,7 @@ def metadata(self):
162163
def get_thumbnail_url(
163164
self, width, height, quality=100, scale_to_fit=True, fmt="png"
164165
):
165-
if not self._url:
166+
if not self.url:
166167
raise ValueError("invalid url")
167168

168169
if width < 0 or height < 0:
@@ -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)